首先自己要準備一份代理池進行更新維護。
準備:
開啟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的可用性判斷