Python学习笔记(15) 网络爬虫使用proxy实现自动换IP防封锁
如果網(wǎng)絡(luò)爬蟲(chóng)訪(fǎng)問(wèn)某個(gè)網(wǎng)站太頻繁,很可能被目標(biāo)網(wǎng)站封鎖,雖然網(wǎng)站封鎖有很多種,需要不同的應(yīng)對(duì)方案,但是,最常用的緩解封鎖的方案是換IP,關(guān)于其他封鎖應(yīng)對(duì)方案大家可以跟帖討論。
換IP也有兩個(gè)方案:
本文講解方案2,由于各個(gè)proxy服務(wù)的api各不相同,每接入一種proxy服務(wù),都要修改網(wǎng)絡(luò)爬蟲(chóng)軟件,本文只講解接入芝麻http的方法,如果您需要接入其他proxy服務(wù),需要與集搜客技術(shù)支持聯(lián)系。
1.? 獲得提取IP的網(wǎng)址
在芝麻http網(wǎng)站上,頂部菜單有“獲取API”,進(jìn)入到獲取API頁(yè)面,假定購(gòu)買(mǎi)了按次提取的服務(wù),如下圖進(jìn)行設(shè)置,以獲得提取IP的網(wǎng)址。
注意提取數(shù)量:選擇1個(gè),因?yàn)榕老x(chóng)每次只用一個(gè)。其他選擇看上圖,通過(guò)這個(gè)API接口,會(huì)返回提取到的IP和端口號(hào),集搜客網(wǎng)絡(luò)爬蟲(chóng)需要解析這個(gè)返回結(jié)果,只支持JSON格式的返回結(jié)果,所以,要像上圖那樣設(shè)置。
點(diǎn)擊“生成API鏈接”,就能得到一個(gè)網(wǎng)址,這個(gè)網(wǎng)址是要配置到集搜客網(wǎng)絡(luò)爬蟲(chóng)中的,爬蟲(chóng)會(huì)每隔一定時(shí)間通過(guò)這個(gè)網(wǎng)址提取一個(gè)新IP地址。
2.? 實(shí)驗(yàn)提取IP
點(diǎn)擊“生成API鏈接”后,能看到這個(gè)頁(yè)面內(nèi)容
點(diǎn)擊復(fù)制鏈接,可以把這個(gè)網(wǎng)址拷貝下來(lái),到網(wǎng)絡(luò)爬蟲(chóng)軟件那里用上這個(gè)網(wǎng)址做proxy配置(下面的章節(jié)講解)。
點(diǎn)擊“打開(kāi)鏈接”,我們查看一下API返回的結(jié)果,如下圖:
3.? 配置爬蟲(chóng)軟件
經(jīng)過(guò)上面的步驟,獲得了4項(xiàng)內(nèi)容,需要配置到爬蟲(chóng)軟件中:
- 提取IP的網(wǎng)址
- 返回結(jié)果中的ip字段的名字
- 返回結(jié)果中的端口號(hào)字段的名字
- 返回結(jié)果中的超時(shí)時(shí)間字段的名字:就是需要重新?lián)QIP的時(shí)間
如上圖,選擇DS打數(shù)機(jī)菜單 高級(jí)->設(shè)置代理,可以看到配置proxy服務(wù)器的窗口,點(diǎn)擊添加按鈕,輸入上述4項(xiàng)內(nèi)容。
點(diǎn)擊“取IP”按鈕,彈出窗口中如果看到返回的json格式的結(jié)果中含有ip地址和端口號(hào)等,表示已經(jīng)能正確提取IP了。
4.? 啟用提取IP
缺省是不啟用的,而且也可以隨時(shí)關(guān)閉,畢竟每次提取IP是需要花錢(qián)的。啟用的方法如下圖,勾選“在用”,就能把這條proxy服務(wù)器設(shè)置使用起來(lái)。在同一臺(tái)計(jì)算機(jī)上,只能啟用一個(gè),否則就沖突了。
如果啟用了,就可以在集搜客瀏覽器上測(cè)試一下效果。在集搜客瀏覽器上訪(fǎng)問(wèn)百度,并且搜索IP地址,看看百度顯示的IP地址是什么,如下圖:
上圖能看出來(lái),得到的地址顯然不是自己所在地的地址,看來(lái)配置的生效了。
5.? 診斷
如果IP提取成功,就會(huì)在集搜客瀏覽器中進(jìn)行配置,這個(gè)配置是全局的,所有DS打數(shù)機(jī)窗口和瀏覽器窗口都會(huì)使用這個(gè)IP,這個(gè)配置可以在瀏覽器中通過(guò)輸入網(wǎng)址about:config看到,如下圖
輸入搜索條件:proxy,看到ftp, http, socks, ssl等都使用了提取到的IP和端口號(hào)。
如果能看到這些設(shè)置,依然不能訪(fǎng)問(wèn)互聯(lián)網(wǎng),比如,連百度都訪(fǎng)問(wèn)不了,那么你所在的網(wǎng)絡(luò)可能禁止了proxy通信協(xié)議。那么只有采用本文開(kāi)頭說(shuō)的方案1了。
總結(jié)
以上是生活随笔為你收集整理的Python学习笔记(15) 网络爬虫使用proxy实现自动换IP防封锁的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Restful接口
- 下一篇: 一个python的UG二次开发简单实例