代理IP知识 / 内容详情
怎么在scrapy中增加代理IP功能
站大爷
官方
2022-4-22 17:42:42
应用scrapy爬虫的时候,经常遇到ip被封的问题,直接导致无法获取数据,所以要使用代理ip。
1,在middleware.py中增加代理的类:
import base64 class ProxyMiddleware(object): #上句中必须是object,不能是其它(如HttpProxyMiddleware) # 重写 request def process_request(self, request, spider): # 设置代理IP和端口 proxy request.meta['proxy'] = "http://YOUR_PROXY_IP:PORT" # 如果需要帐号和密码,需要以下的内容,没有帐号和密码就忽略如下所有内容 proxy_user_pass = "USERNAME:PASSWORD" # setup basic authentication for the proxy encoded_user_pass = base64.encodestring(proxy_user_pass) request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass
2,修改setting的内容。
DOWNLOADER_MIDDLEWARES = { 'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 110, 'project_name.middlewares.ProxyMiddleware': 100,
}