天天看點

scrapy中代理池的使用

首先自己要準備一份代理池進行更新維護。

準備:

開啟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的可用性判斷

繼續閱讀