zoukankan      html  css  js  c++  java
  • scrapy 避免被ban

    1、settings.py

    COOKIES_ENABLED = False
    DOWNLOAD_DELAY = 3
    ROBOTSTXT_OBEY = False

    ip代理池设置
    IPPOOL = [{'ipadder':'1.1.1.1'},
    {'ipadder':'2.1.1.1'},
    {'ipadder': '1.3.1.1'},
    {'ipadder': '1.1.1.4'},
    ]
    DOWNLOADER_MIDDLEWARES = {
    #'Autopjt.middlewares.MyCustomDownloaderMiddleware': 543,
    'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware':123,
    'Autopjt.middlewares.IPPOOLS':125,
    }

    2、middlewares.py
    import random
    from Autopjt.settings import IPPOOL
    from scrapy.contrib.downloadermiddleware.httpproxy import HttpProxyMiddleware
    
    class IPPOOLS(HttpProxyMiddleware):
        def __init__(self,ip=''):
            self.ip = ip
        def process_request(self, request, spider):
            thisip = random.choice(IPPOOL)
            # 将对应的IP实际添加为具体代理,用该ip进行爬取
            request.meta['proxy']='http://' + thisip['ipaddr']

    UA池

    UAPOOL = ['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.103 Safari/537.36',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.104 Safari/537.36',]
    DOWNLOADER_MIDDLEWARES = {
    #'Autopjt.middlewares.MyCustomDownloaderMiddleware': 543,
    #'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware':123,
    #'Autopjt.middlewares.IPPOOLS':125,
    'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware':2,
    'Autopjt.middlewares.Uamid':1
    }
    middlewares.py
    import random
    from Autopjt.settings import UAPOOL
    from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware
    
    class Uamid(UserAgentMiddleware):
        def __init__(self,ua=''):
            self.ua = ua
        def process_request(self, request, spider):
            thisua = random.choice(UAPOOL)
            request.headers.setdefault('User-Agent',thisua)
  • 相关阅读:
    DES、RC4、AES等加密算法优势及应用
    Jupyter Notebook 快捷键
    python 清华镜像pip install
    anaconda下载 (清华镜像)
    pycharm 授权/激活
    python序列中添加高斯噪声
    python 如何在一个.py文件中调用另一个.py文件的类
    pycharm 变量批量重命名
    pycharm常用快捷键
    C++中获取时间
  • 原文地址:https://www.cnblogs.com/Erick-L/p/6836059.html
Copyright © 2011-2022 走看看