首先自己要准备一份代理池进行更新维护。
准备:
开启redis-server,并且运行python run.py ,在redis中可以看到爬取到的代理。确保http://127.0.0.1:5555/random 上能取得正确的ip
使用:
在下载中间件middlewares中进行设置:
import requests
PROXY_POOL_URL = 'http://127.0.0.1:5555/random'
class RandomProxyMiddleware(object):
#动态设置ip代理
def process_request(self, request, spider):
proxy_ip = requests.get(PROXY_POOL_URL).text
request.meta["proxy"] = 'http://' + proxy_ip
然后在settings中设置
DOWNLOADER_MIDDLEWARES = {
'xxxxxxxxxxxxx.middlewares.RandomUserAgentMiddlware': 543,
}
注意:
该方法确保代理池的抓取文件处于运行状态(python run.py)。确保redis中有代理ip。设置中间件时可以增加对ip的可用性判断