在scrapy的反爬中,常用的幾個配置,簡單總結了下:
User-Agent中間件:
from fake_useragent import UserAgent class RandomUserAgentMiddleware(object): def __init__(self, crawler): self.ua = UserAgent() def process_request(self, request, spider): request.headers.setdefault('User-Agent', self.ua.random)
代理IP中間件:
class RandomProxyMiddleware(object):
'''
這只是一個簡單的演示
''' def process_request(self, request, spider): ip = '' # 要用到的代理IP
port = '' # 要使用的代理port
request.meta['proxy'] = 'http://{}:{}'.format(ip, port)
cookies設置、多個爬蟲共用一個settings時,各自spider中的設置:
class BaiduSpider(scrapy.Spider): name = 'baidu' allowed_domains = ['baidu.com'] start_urls = ['https://www.baidu.com'] # custom_settings可以設置調整settings中的配置參數,以此來適配自己的spider。
custom_settings = { 'COOKIES_ENABLED':True, # 在配置文件settings中可以設置成False, 在這個spider中這樣設置就可以開啟cookies了,其他的配置一樣適用 } def parse(self, response): pass
都是很簡單實用的配置
驗證碼:打碼平台比較簡單、省事、效率
注:每天進步一點點,或記錄或不記錄,都是自己的。記錄是怕遺忘,也是為了更好的想起!