scrapy中代理池的使用
阿新 • • 發佈:2019-01-26
首先自己要準備一份代理池進行更新維護。
準備:
開啟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的可用性判斷