• scrapy_ip_agent


    #File name is rotate_useragent
    # -*- coding: UTF-8 -*-
    import random
    import urllib2
    import redis
    from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware
    from CrawlerTools.ScrapyFileSystem.config import *
    class RotateUserAgentMiddleware(UserAgentMiddleware):
        
        def __inti__(self,user_agent=""):
            self.user_agent=user_agent

        def process_request(self,request,spider):
            user_agent_list=["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 "  
                        "(KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",  
                        "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 "  
                        "(KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",  
                        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 "  
                        "(KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",  
                        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 "  
                        "(KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",  
                        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 "  
                        "(KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",  
                        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 "  
                        "(KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",  
                        "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 "  
                        "(KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",  
                        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "  
                        "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",  
                        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 "  
                        "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
                        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 "  
                        "(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",  
                        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "  
                        "(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",  
                        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "  
                        "(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",  
                        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "  
                        "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",  
                        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "  
                        "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",  
                        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 "  
                        "(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",  
                        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "  
                        "(KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",  
                        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 "  
                        "(KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",  
                        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 "  
                        "(KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"  ]
            ua=random.choice(user_agent_list)
            if ua:
                request.headers.setdefault("User-Agent",ua)

            #Get  ip
            cfg=config("Redis")
            redisId=redis.Redis(cfg["host"],cfg["port"],1,cfg["pwd"])
            res=redisId.srandmember("ipPool",1)[0].strip()
            urls=res.split(":")
            request.meta['proxy'] ="http://"+str(urls[0])+":"+str(urls[1])
            # Use the following lines if your proxy requires authentication



    #Configuration profile
    DOWNLOADER_MIDDLEWARES = {
            'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware' : None,  
        'CrawlerTools.rotate_useragent.RotateUserAgentMiddleware' :400  
    }

  • 相关阅读:
    docker删除所有服务service,停止并删除所有容器container
    harbor
    yml文件
    linux 上安装portainer.io
    凤凰之谜 1/4 潜行者
    凤凰之谜 4/4 猎人
    凤凰之谜 3/4 德鲁伊 迷宫
    Dijkstra最短路径算法
    LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式
    How do I run a Python script from C#?
  • 原文地址:https://www.cnblogs.com/scarecrowpqs/p/5821778.html
Copyright © 2020-2023  润新知