爬蟲福音Github星標14K++,一個開源的IP代理池

      網友投稿 1338 2022-05-30

      大家好,我是丁小杰!

      時間過得真快,一眨眼就到了元宵節,大家記得吃元宵哦~

      不知道大家在寫爬蟲時是否遇到過這樣的情況,測試時爬蟲可以正常工作,但運行一段時間,就會發現報錯或是沒有數據返回,網頁可能會提示“IP訪問頻繁”。這就說明網站對IP方面是有反爬措施的(IP一定時間內的請求次數及速度)。如果超過了某個閾值,就會直接拒絕服務,也就是經常說的“封IP”。

      這種情況下,就到了代理IP出場了。代理實際就是代理服務器,它的工作原理其實很簡單,在我們正常請求一個網站時,是直接發送請求給Web服務器,Web服務器把響應數據傳給我們。而用了代理IP,就像是在本機和Web服務器之間搭建了一個“橋”,此時本機會先向代理服務器發出請求,再由代理服務器發送給Web服務器。響應數據的返回也是同樣的道理,都需要代理服務器來中轉。這樣Web服務器就不容易識別出本機IP了。

      但代理IP也有優劣之分,以隱匿性來分有3種:高匿代理,普匿代理,透明代理。

      接下來就看看 Github 熱門的開源項目 ProxyPool ,如何使用吧!

      一個爬蟲代理IP池,定時采集網上發布的免費代理并驗證入庫,定時檢測代理的可用性,提供 API 和 CLI 兩種使用方式。同時你也可以擴展代理源以增加代理池IP的質量和數量。

      通過 git clone 下載代碼

      git clone git@github.com:jhao104/proxy_pool.git

      下載對應zip文件

      pip install -r requirements.txt

      打開代碼文件中的 setting.py ,根據自己的需求修改項目配置。

      # 配置API服務 HOST = "0.0.0.0" # IP PORT = 5000 # 監聽端口 # 配置數據庫 DB_CONN = 'redis://:pwd@127.0.0.1:8888/0' # 無密碼 DB_CONN = 'redis://:@127.0.0.1:8888/0' # proxy table name 表名(自己建的) TABLE_NAME = 'use_proxy' # 配置 ProxyFetcher PROXY_FETCHER = [ "freeProxy01", # 這里是啟用的代理抓取方法名,所有fetch方法位于fetcher/proxyFetcher.py "freeProxy02", # .... ]

      啟動 redis 服務:redis-server.exe(可執行文件在 redis 安裝路徑下)。

      1.啟動調度程序

      啟動調度程序,在 Proxy_pool 項目路徑下打開 cmd 輸入:

      python proxyPool.py schedule

      讀取數據庫中的代理。

      爬蟲福音:Github星標14K+,一個開源的IP代理池

      import redis r = redis.StrictRedis(host="127.0.0.1", port=6379, db=0) result = r.hgetall('use_proxy') result.keys()

      2.啟動webApi服務

      python proxyPool.py server

      啟動web服務后, 默認配置下會開啟 http://127.0.0.1:5010 的api接口服務:

      在爬蟲中使用

      import requests def get_proxy(): return requests.get("http://127.0.0.1:5010/get/").json() def delete_proxy(proxy): requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy)) # your spider code def getHtml(): # .... retry_count = 5 proxy = get_proxy().get("proxy") while retry_count > 0: try: html = requests.get('http://www.example.com', proxies={"http": "http://{}".format(proxy)}) # 使用代理訪問 return html except Exception: retry_count -= 1 # 刪除代理池中代理 delete_proxy(proxy) return None

      代理池中的代理畢竟是爬取的免費代理,IP質量那真是一言難盡,但也足夠日常開發使用。

      對于使用還有不懂的話,可以看一下完整文檔。

      項目地址:

      Git GitHub

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Google Earth Engine ——2001-2017年非洲0-200 厘米深度的基巖深度,預測平均值和標準偏差數據集
      下一篇:什么是Python全局解釋器鎖(GIL)?
      相關文章
      在线观看日本亚洲一区| 亚洲最大中文字幕无码网站 | 亚洲伊人久久精品影院| 国产成人亚洲午夜电影| 亚洲国产精品久久久久秋霞小| 久久乐国产综合亚洲精品| 亚洲午夜一区二区电影院| 亚洲最大中文字幕| 亚洲国产美女福利直播秀一区二区| 久久久久亚洲AV无码专区体验| 亚洲日韩图片专区第1页| 亚洲国产人成在线观看69网站 | 在线电影你懂的亚洲| 精品亚洲aⅴ在线观看| 亚洲精品国产电影午夜| 亚洲网站在线免费观看| 亚洲欧洲日本国产| 亚洲av乱码一区二区三区| 亚洲中文字幕久久精品无码2021| 亚洲啪啪免费视频| 中文字幕亚洲码在线| 亚洲精品9999久久久久无码| 国产精品无码亚洲精品2021| 亚洲AV无码乱码在线观看| 国产成人精品亚洲精品| 亚洲小说区图片区另类春色| 久久亚洲精品视频| 337p日本欧洲亚洲大胆精品555588 | 亚洲第一精品福利| 久久综合亚洲色一区二区三区| 亚洲精品国产免费| 国产亚洲精aa在线看| 色综合久久精品亚洲国产| 亚洲国产高清在线一区二区三区| 国产成人高清亚洲| 亚洲成AV人片在| 亚洲成人动漫在线观看| 亚洲熟女乱色一区二区三区| 国产精品亚洲va在线观看| 国产亚洲情侣一区二区无码AV| 亚洲av中文无码乱人伦在线r▽|