91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用Python爬蟲抓取代理IP

發布時間:2021-10-28 18:47:28 來源:億速云 閱讀:262 作者:柒染 欄目:編程語言

本篇文章為大家展示了如何用Python爬蟲抓取代理IP,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

不知道大家在訪問網站的時候有沒有遇到過這樣的狀況就是被訪問的網站會給出一個提示,提示的顯示是“訪問頻率太高”,如果在想進行訪問那么必須要等一會或者是對方會給出一個驗證碼使用驗證碼對被訪問的網站進行解封。之所以會有這樣的提示是因為我們所要爬取或者訪問的網站設置了反爬蟲機制,比如使用同一個IP頻繁的請求網頁的次數過多的時候,服務器由于反爬蟲機制的指令從而選擇拒絕服務,這種情況單單依靠解封是比較難處理的,所以一個解決的方法就是偽裝本機的IP地址去訪問或者爬取網頁,也就是我們今天所有跟大家所說的代理IP

目前網上有許多代理ip,有免費的也有付費的。免費的雖然不用花錢但有效的代理很少且不穩定,付費的可能會好一點  下面講一下代理IP的試用,將可用ip存入MongoDB,方便下次取出。

運行平臺:Windows

Python版本:Python3.6

IDE: Sublime Text

其他:Chrome瀏覽器

簡述流程為:

步驟1:了解requests代理如何使用

步驟2:從代理網頁爬取到ip和端口

步驟3:檢測爬取到的ip是否可用

步驟4:將爬取的可用代理存入MongoDB

步驟5:從存入可用ip的數據庫里隨機抽取一個ip,測試成功后返回

對于requests來說,代理的設置比較簡單,只需要傳入proxies參數即可。

不過需要注意的是,這里我是在本機安裝了抓包工具Fiddler,并用它在本地端口8888創建了一個HTTP代理服務(用Chrome插件SwitchyOmega),即代理服務為:127.0.0.1:8888,我們只要設置好這個代理,就可以成功將本機ip切換成代理軟件連接的服務器ip了。

如何用Python爬蟲抓取代理IP

這里我是用來http://httpbin.org/get作為測試網站,我們訪問該網頁可以得到請求的有關信息,其中origin字段就是客戶端ip,我們可以根據返回的結果判斷代理是否成功。返回結果如下:

接下來我們便開始爬取代理IP,首先我們打開Chrome瀏覽器查看網頁,并找到ip和端口元素的信息。

如何用Python爬蟲抓取代理IP

可以看到,代理IP以表格存儲ip地址及其相關信息,所以我們用BeautifulSoup提取時很方便便能提取出相關信息,但是我們需要注意的是,爬取的ip很有可能出現重復的現象,尤其是我們同時爬取多個代理網頁又存儲到同一數組中時,所以我們可以使用集合來去除重復的ip。

如何用Python爬蟲抓取代理IP

將要爬取頁數的ip爬取好后存入數組,然后再對其中的ip逐一測試。

如何用Python爬蟲抓取代理IP

這里就用到了上面提到的requests設置代理的方法,我們使用http://httpbin.org/ip作為測試網站,它可以直接返回我們的ip地址,測試通過后再存入MomgoDB數據庫。

如何用Python爬蟲抓取代理IP

連接數據庫然后指定數據庫和集合,再將數據插入就OK了。

如何用Python爬蟲抓取代理IP

最后運行查看一下結果吧

如何用Python爬蟲抓取代理IP

運行了一段時間后,難得看到一連三個測試通過,趕緊截圖保存一下,事實上是,畢竟是免費代理IP,有效的還是很少的,并且存活時間確實很短,不過,爬取的量大,還是能找到可用的,我們只是用作練習的話,還是勉強夠用的。現在看看數據庫里存儲的吧。

如何用Python爬蟲抓取代理IP

因為爬取的頁數不多,加上有效ip也少,再加上我沒怎么爬,所以現在數據庫里的ip并不多,不過也算是將這些ip給存了下來。現在就來看看怎么隨機取出來吧。

如何用Python爬蟲抓取代理IP

由于擔心放入數據庫一段時間后ip會失效,所以取出前我重新進行了一次測試,如果成功再返回ip,不成功的話就直接將其移出數據庫。

這樣我們需要使用代理的時候,就能通過數據庫隨時取出來了。

總的代碼如下:

zhihu.com/people/hdmi-blog

上述內容就是如何用Python爬蟲抓取代理IP,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兖州市| 舒城县| 新兴县| 鲁山县| 德江县| 陆河县| 庐江县| 和硕县| 孝昌县| 乌拉特中旗| 马龙县| 普兰店市| 大足县| 手机| 内乡县| 巴青县| 府谷县| 当涂县| 临桂县| 柳江县| 德格县| 米脂县| 仙桃市| 石棉县| 灵川县| 金华市| 枣强县| 台南县| 申扎县| 山东省| 伊春市| 甘谷县| 竹溪县| 湾仔区| 道孚县| 石景山区| 叶城县| 安乡县| 关岭| 鄱阳县| 蒲江县|