1. 程式人生 > >scrapy中代理池的使用

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