爬蟲(chóng):一段自動(dòng)抓取互聯(lián)網(wǎng)信息的程序,從互聯(lián)網(wǎng)上抓取對(duì)于我們有價(jià)值的信息,一般來(lái)說(shuō),Python爬蟲(chóng)程序很多時(shí)候都要使用(飛豬IP)代理的IP地址來(lái)爬取程序,但是默認(rèn)的urlopen是無(wú)法使用代理的IP的,我就來(lái)分享一下Python爬蟲(chóng)怎樣使用代理IP的經(jīng)驗(yàn)。(推薦飛豬代理IP注冊(cè)可免費(fèi)使用,瀏覽器搜索可找到)
1、劃重點(diǎn),小編我用的是Python3哦,所以要導(dǎo)入urllib的request,然后我們調(diào)用ProxyHandler,它可以接收代理IP的參數(shù)。代理可以根據(jù)自己需要選擇,當(dāng)然免費(fèi)的也是有的,但是可用率可想而知的。(飛豬IP)
2、接著把IP地址以字典的形式放入其中,這個(gè)IP地址是我亂寫(xiě)的,只是用來(lái)舉例。設(shè)置鍵為http,當(dāng)然有些是https的,然后后面就是IP地址以及端口號(hào)(9000),具體看你的IP地址是什么類(lèi)型的,不同IP端口號(hào)可能不同根據(jù)你在飛豬提取的端口為準(zhǔn)。
3、接著再用build_opener()來(lái)構(gòu)建一個(gè)opener對(duì)象。
4、然后調(diào)用構(gòu)建好的opener對(duì)象里面的open方法來(lái)發(fā)生請(qǐng)求。實(shí)際上urlopen也是類(lèi)似這樣使用內(nèi)部定義好的opener.open(),這里就相當(dāng)于我們自己重寫(xiě)。
5、當(dāng)然了,如果我們使用install_opener(),就可以把之前自定義的opener設(shè)置成全局的。
6、設(shè)置成全局之后,如果我們?cè)偈褂胾rlopen來(lái)發(fā)送請(qǐng)求,那么發(fā)送請(qǐng)求使用的IP地址就是代理IP,而不是本機(jī)的IP地址了。
7、最后再來(lái)說(shuō)說(shuō)使用代理遇到的錯(cuò)誤,提示目標(biāo)計(jì)算機(jī)積極拒絕,這就說(shuō)明可能是代理IP無(wú)效,或者端口號(hào)錯(cuò)誤,這就需要使用有效的IP才行哦。(這邊現(xiàn)在是亂填寫(xiě)的IP地址)可選擇飛豬的代理IP。
總結(jié):以上就是本次關(guān)于Python數(shù)據(jù)抓取爬蟲(chóng)代理防封IP方法,感謝大家的閱讀和對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選