代理IP有時可以發揮非常重要的作用

高可用性的分布式IP代理池,現在就試試吧。花了大約兩個月的時間,到目前為止,高度可用的分布式代理IP池終于完成了,現在已經在Github上開源了。寫這個項目主要有兩個原因。首先,我的部分工作通常涉及處理網絡爬蟲,代理IP有時可以發揮非常重要的作用。筆者調查了一些開源的代理IP收集程序,發現這些程序在抓取、解析、檢查、資源調度等方面總是存在一些不盡如人意的地方。第二,通過與一位網友(嚴格意義上不算伯樂)的交流,我產生了一些關于使用Scrapy編寫分布式網絡爬蟲的想法,而這恰好是一個嘗試驗證這些想法的機會。

本文的目的是解釋haipproxy的主要體系結構和過程項目模塊。一個基于Scrapy和Redis的分布式網絡爬蟲,用于IP爬行和檢查,對應于項目的爬蟲。基于Redis的分布式任務調度工具,對應于項目的調度程序和redis util.py。

爬行器分為代理爬行和驗證,實現思路是相似的。它主要使用Scrapy的spider_idle信號和DontCloseSpider異常來防止Scrapy在沒有數據時關閉。啟動調度程序,包括代理爬蟲調度程序和驗證爬蟲調度程序。調度程序將讀取rules.py中要爬取的網站,將它們組織成任務,并將它們存儲在每個任務隊列中。

啟動每一個網絡爬蟲,包括IP抓取和驗證程序。項目中的網絡爬蟲和調度器具有高可用性,可以根據實際情況進行分布式部署,無需修改代碼。由于本文的目的不是為該項目編寫詳細的使用文檔,因此省略了指定啟動網絡爬蟲類型和調度器類型的介紹。
IP收集爬蟲啟動后,它將從相應的任務隊列中獲取任務并執行它們,然后將獲取的結果存儲在一個init隊列中。

init隊列由一個特殊的驗證器HttpbinInitValidator使用,它過濾出透明的代理,然后將可用的代理輸入到每個驗證的隊列中。調度程序將定期從經過驗證的隊列中獲取代理IP,并將其存儲在臨時隊列中。在這里,臨時隊列被用來使驗證更加公平。如果直接從被驗證隊列中獲取資源進行驗證,會增加不公平性。

此時,每個驗證者(非init驗證者)將從相應的臨時隊列中獲取要驗證的IP并進行驗證。此處省略驗證細節。驗證完成后,將其放回已驗證隊列,等待下一輪驗證。Web Crawler客戶端將使用其請求成功率(以分數表示)、響應速度和最后檢查時間滿足settings.py中配置的需求的代理IP。

動態IP模擬器

為了屏蔽調用語言之間的差異,目前實現的客戶端是Squid客戶端,它也可以用作網絡爬蟲客戶端的中間件,至此整個過程就完成了。
 
主站蜘蛛池模板: 国产激情久久久久影院小草| 婷婷久久五月天| 亚洲另类春色国产精品| 狠狠躁天天躁中文字幕无码| 另类一区二区三区| 豪妇荡乳1一5白玉兰免费下载| 国产精品久久久久久久久99热| 99久久99久久免费精品小说| 好硬好爽好湿好深视频| 中文天堂在线观看| 日本中文字幕黑人借宿影片| 久久综合九色综合欧美就去吻| 欧美另类videovideosex| 亚洲熟妇无码av在线播放| 男爵夫人的调教| 公在厨房对我猛烈进出视频| 羞羞视频免费网站在线看| 国产乱叫456在线| 韩国男女无遮挡高清性视频| 国产探花在线视频| 亚洲国产最大av| 国产精品单位女同事在线| 7777精品伊人久久久大香线蕉 | 97久久天天综合色天天综合色| 天天爱天天做天天爽| www亚洲视频| 婷婷四房综合激情五月在线| 中文字幕亚洲综合久久综合| 无码高潮少妇毛多水多水免费 | 精品国产第一国产综合精品| 四虎永久免费地址在线网站| 进进出出稚嫩娇小狭窄| 国产免费久久精品99久久| 韩国色三级伦不卡高清在线观看| 国产无遮挡又黄又爽在线视频| 欧美视频亚洲色图| 国产的一级毛片最新在线直播| 亚洲国产成人精品激情| 国产福利兔女郎在线观看| tom影院亚洲国产一区二区| 国产精品jizz在线观看免费|