1. 程式人生 > >爬蟲代理池設定===閒的無聊

爬蟲代理池設定===閒的無聊

代理池的設定:
代理服務tinyproxy的基本設定
安裝:
apt install tinyproxy
配置:
vim /etc/tinyproxy.conf
修改其中的兩項配置,首先, 將這一行註釋掉

# Allow 127.0.0.1

然後,修改一下預設埠號

Port XXXX   (自定義)

重啟一下tinyproxy

sudo systemctl restart tinyproxy  
# 支援ubuntu16

如果使用的是雲伺服器,需要新增一下安全組規則:
設定埠範圍為:1703/1703,允許訪問的IP來源設定為0.0.0.0/0
測試tinyproxy是否可用 :
在專案下進入 scrapy shell
(執行scrapy shell時 需切換到 專案.cfg 配置同級目錄下
在shell裡執行:
import requests
requests.get(‘

http://httpbin.org/ip’,proxies={‘http’:'http://主機:埠’}).json()
返回結果為你的代理IP則正常
非分散式代理池設定:
middlewares檔案內設定

import random
from scrapy import signals
from scrapy.exceptions import NotConfigured
class RandomProxyMiddleware(object):
    def __init__(self,settings):#匯入代理池
        self.proxies = settings.getlist('PROXIES')
    @classmethod
    def from_crawler(cls,crawler):#匯入中介軟體
        if crawler.settings.getbool('HTTPCACHE_ENABLED'):
            raise NotConfigured
        return cls(crawler.settings)
    def process_request(self,request,spider):
        if 'proxy' not in  request.meta:
            request.meta['proxy'] = random.choices(self.proxies)
    def process_response(self,request,response,spider):
        print(request.meta['proxy'])
    def process_exception(self,request,exception,spider):
        pass

#setting檔案設定

DOWNLOADER_MIDDLEWARES = {
   'xpc.middlewares.XpcDownloaderMiddleware': 749,
}#代理池#系統的是750  開啟這個檔案
HTTPCACHE_ENABLED = True#系統檔案需要開啟
PROXIES = {
   'http://xxxxxxxxxxxxxx:埠號',
   'http://xxxxxxxxxxxxxx:埠號',
   'http://xxxxxxxxxxxxxx:埠號',
   'http://xxxxxxxxxxxxxx:埠號',
   'http://xxxxxxxxxxxxxx:埠號',
   'http://xxxxxxxxxxxxxx:埠號',
}

#不知道其他人怎麼設定的,謝謝支援!