摘要:近來知乎上如雨后春筍般冒出了大把大把的爬蟲教程。一個爬蟲教程的案例三個月之后還能有效已經是萬幸了。不過仍然要說明,即使經過多次驗證,也無法保證一個的絕對可用性。這是個概率問題,工具的作用只是盡可能提高概率。
近來知乎上如雨后春筍般冒出了大把大把的爬蟲教程。這是好事,學了 Python 基礎的同學們可以很輕松地搜出許多練手的例子。不過我不是針對誰,我是說網上絕大多數的爬蟲教程,其實都缺乏可操作性。
是的,也包括我自己寫過的。
主要原因有兩點:
教程是死的,網站是活的。頁面會改版,接口會更新。一個爬蟲教程的案例三個月之后還能有效已經是萬幸了。比如我自己教程里的查天氣案例,接口改動過很多次,數據也早就不更新。但發出去的文章被轉發幾次后就很難再維護更新了。我也只能在自己的論壇上發布更新消息和問題答疑:【Python 第43課】 查天氣(1)。
但凡數據比較有價值的網站,一定都會有反爬措施,既是對數據的保護,也是避免機器流量干擾到正常用戶的體驗。所以光是寫個網絡請求,幾乎不可能成功拿到數據。反爬措施千千萬,應對反爬的手段萬萬千,這就是個不停斗智斗勇的過程,不存在一個教程就教會的萬金油方法。
反爬里面最常見的一種手段就是,判斷你的請求頻率。如果你短時間內發送了大量的請求,甭管你是不是人,先封你賬號或 IP 一段時間再說。所以,這就成了一個矛盾的地方:爬得太快會被封,爬得太慢又很耗時間。一般教程也許會說句:想要提升抓取效率并且降低被封的風險,可以使用代理 IP。然而這話說著倒輕松,網上免費的代理 IP 也不少,但每次找來能用的卻沒幾個。總不至于每次為了寫點小練習還去花錢買很多付費代理吧。況且現如今你真要買,也還未必能順利買到可用的。
于是我們決定自己動手,一勞永逸地解決這個老大難問題:實現一個自動獲取可用代理 IP 的接口。
基本思路還是從網上的幾大免費平臺獲取 IP 地址,不同的是我們定期去檢測 IP 的可用性。在調用接口時,提供可用性最高的 IP 地址列表。
網頁上列出了幾十個最新的推薦 IP,只是臨時找幾個做測試,可直接訪問查看。
網頁地址:http://lab.crossincode.com/pr...
API 接口地址:http://lab.crossincode.com/pr...
請求方法:GET
頻率限制:不高于3秒1次
請求示例:
獲取 5 個 IP
http://lab.crossincode.com/pr...
獲取 5 個 HTTPS 的 IP
http://lab.crossincode.com/pr...
返回結果示例:
{ "proxies": [ { "http": "117.90.0.225:9000" }, { "http": "186.154.146.26:8080" }, { "http": "175.155.25.27:808" }, { "http": "124.88.67.52:843" }, { "http": "119.5.0.7:808" } ], "code": 1 }
于是,在你做爬蟲練習時,只要通過接口獲取幾個 IP,作為你請求的 proxy,即可大大提高抓取的效率。目前我們自己的爬蟲項目都在使用此接口。
不過仍然要說明,即使經過多次驗證,也無法保證一個 IP 的絕對可用性。不同時間不同地域不同網絡都有可能導致請求超時或失效。所以你的代碼中也還是需要自己做好相應的異常處理。這是個概率問題,工具的作用只是盡可能提高概率。
我們不生產 IP,我們只是互聯網的搬運工。
完整的接口參數說明,以及項目的源代碼,可在公眾號(Crossin的編程教室)后臺回復 IP。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/40830.html
摘要:文檔寫得很清楚,也有中文版,你只要看了最初的一小部分,就可以在代碼中派上用場了。 關于爬蟲的案例和方法,我們已講過許多。不過在以往的文章中,大多是關注在 如何把網頁上的內容抓取下來 。今天我們來分享下,當你已經把內容爬下來之后, 如何提取出其中你需要的具體信息 。 網頁被抓取下來,通常就是 str 字符串類型的對象 ,要從里面尋找信息,最直接的想法就是直接通過字符串的 find 方法 ...
摘要:注一篇去年的舊文,發現沒在知乎發過,過來補個檔。于是就有了我們這個小項目電影票比價網在我們這個網頁上,會展示出當前熱映的電影。涉及到模塊主要是用來匹配不同渠道的影院信息代碼結構項目主要有三塊使用豆瓣每日更新上映的影片列表。 注:一篇去年的舊文,發現沒在知乎發過,過來補個檔。有個小問題是項目中淘票票的網頁反爬提升且變動較多,目前暫不可用了。 時常有同學會問我類似的問題:我已經學完了 Py...
摘要:比如分鐘破譯朋友圈測試小游戲文章里用的方法但有些根本就沒有提供網頁端,比如今年火得不行的抖音。所以常用的方式就是通過在電腦上裝一些抓包軟件,將手機上的網絡請求全部顯示出來。總結下,重點是的抓取,關鍵是配置代理證書,難點是對請求的分析。 爬蟲的案例我們已講得太多。不過幾乎都是 網頁爬蟲 。即使有些手機才能訪問的網站,我們也可以通過 Chrome 開發者工具 的 手機模擬 功能來訪問,以便...
摘要:添加插件開啟開發者模式,加載自己建的插件目錄即可測試現在到搶紅包的頁面刷新后就可以看到效果了,建議不要刷太頻繁,我的已經被封了。 原文:http://laker.me/blog/2015/12/10/15_12010_auto_red_packet/歡迎交換友鏈 Lakers Blog--進擊的程序媛Github:https://github.com/younglaker微博: 江小湖...
摘要:但線程過多也許會觸發圖床的保護機制,同時也和自己電腦配置有關,這個得結合實際情況考慮了。圖床限制這個是圖片過多一定是大概率出現的,上傳請求的頻次過高很容易被限流封。 showImg(https://segmentfault.com/img/remote/1460000019118030?w=1920&h=1016); 前言 經過幾個小伙伴的提醒,發現個人博客中的許多圖片都裂了無法訪問;...
閱讀 1873·2021-11-15 11:39
閱讀 1080·2020-12-03 17:06
閱讀 736·2019-12-27 11:42
閱讀 3274·2019-08-30 13:59
閱讀 1463·2019-08-26 13:22
閱讀 3287·2019-08-26 12:15
閱讀 2475·2019-08-26 10:22
閱讀 1564·2019-08-23 18:40