如何用免費(fèi)代理IP爬數(shù)據(jù),相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比永定網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式永定網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋永定地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
一.前言
玩爬蟲(chóng)的都避免不了各大網(wǎng)站的反爬措施限制,比較常見(jiàn)的是通過(guò)固定時(shí)間檢測(cè)某ip地址訪問(wèn)量來(lái)判斷該用戶是否為 “網(wǎng)絡(luò)機(jī)器人”,也就是所謂的爬蟲(chóng),如果被識(shí)別到,就面臨被封ip的風(fēng)險(xiǎn),那樣你就不能訪問(wèn)該網(wǎng)址了。
通用的解決辦法是用代理ip進(jìn)行爬取,但是收費(fèi)的代理ip一般都是比較貴的,網(wǎng)上倒是有很多免費(fèi)的代理ip網(wǎng)站,但是受時(shí)效性影響,大部分地址都不能用,有很多維護(hù)代理ip池的教程,即把爬取并檢測(cè)后能用代理ip放到“代理池里”,等以后要用的時(shí)候再?gòu)睦锩嫣崛。谖铱磥?lái),這種效率比較低,因?yàn)檫@類IP地址很快就失效,我們要做的是邊檢測(cè)邊使用,充分保證免費(fèi)IP的時(shí)效性。
二.抓取IP地址
下面就開(kāi)始實(shí)戰(zhàn)操作。
1.首先我們隨便找一個(gè)免費(fèi)代理ip網(wǎng)站,如下圖所示。
2、打開(kāi)網(wǎng)頁(yè)查看器,分析其網(wǎng)頁(yè)元素結(jié)構(gòu),如下圖所示。
3、就是一個(gè)簡(jiǎn)單的靜態(tài)網(wǎng)頁(yè),我們用requests和bs4將ip地址和對(duì)應(yīng)端口爬下,如下圖所示。
4、每一行ip地址都由5個(gè)標(biāo)簽組成,而我們需要的是第一個(gè)標(biāo)簽(對(duì)應(yīng)IP地址)和第2個(gè)標(biāo)簽(對(duì)應(yīng)端口),所以從第一個(gè)開(kāi)始,每隔5個(gè)取出ip地址(item[::5]),從第二個(gè)開(kāi)始,每隔5個(gè)取出對(duì)應(yīng)端口(item[1::5]),參數(shù)n為頁(yè)碼,每次只在1頁(yè)取1個(gè)有用的ip地址,最終效果如下圖所示:
三.驗(yàn)證IP有效性
這里把百度百科作為目標(biāo)網(wǎng)站,這個(gè)看似很普通的網(wǎng)站,反爬措施卻極為嚴(yán)格,爬不了幾條內(nèi)容就開(kāi)始請(qǐng)求失敗了,下面我以在百度百科查詢?nèi)珖?guó)火車(chē)站歸屬地信息為例演示如何使用免費(fèi)代理ip。
1、首先我在12306上把所有的火車(chē)站名都爬下來(lái)了,但是沒(méi)有歸屬地信息。
2、然后以站名構(gòu)造百度百科url信息,分析網(wǎng)頁(yè)元素,把爬取爬取火車(chē)站地址信息,網(wǎng)頁(yè)元素如下圖所示:
3、所以,我們只需在class_='basicInfo-item'的標(biāo)簽內(nèi)容里查找有無(wú)“省”或者“市”的字符,然后輸出就行了,最后加一個(gè)while True循環(huán),當(dāng)該ip能正常爬數(shù)據(jù)時(shí),則break該循環(huán);若該ip被禁,則馬上重新請(qǐng)求一個(gè)新ip進(jìn)行爬取。直接上代碼如下圖所示:
4、其中for循環(huán)是遍歷所有火車(chē)站,try是用于檢測(cè)該ip還能不能用,若不能,則在except里請(qǐng)求1個(gè)新ip,爬取效果如下圖所示:
下次再遇到爬蟲(chóng)被禁的情況就可以用此辦法解決了。
主要介紹了去IP代理網(wǎng)站上抓取可用IP,并且Python腳本實(shí)現(xiàn)驗(yàn)證IP地址的時(shí)效性,如遇到爬蟲(chóng)被禁的情況就可以用本文的辦法進(jìn)行解決。
看完上述內(nèi)容,你們掌握如何用免費(fèi)代理IP爬數(shù)據(jù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
分享名稱:如何用免費(fèi)代理IP爬數(shù)據(jù)
標(biāo)題鏈接:http://chinadenli.net/article44/gojche.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、微信公眾號(hào)、建站公司、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站策劃、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)