對(duì)于python爬蟲來(lái)說(shuō),大多人聽起來(lái)是比較陌生的,但是對(duì)于一些專業(yè)人來(lái)說(shuō),對(duì)其了解還是比較的深刻的。但是,也會(huì)遇到一些問題,比如我們?cè)谑褂门老x爬取的時(shí)候,如果遇到對(duì)方設(shè)置了一些爬蟲限制,那么爬起來(lái)就比較的麻煩了。那么,遇到代理ip問題的話,要怎么去解決呢?下面就給大家詳細(xì)解答下。
主要內(nèi)容:代理ip使用原理,怎么在自己的爬蟲里設(shè)置代理ip,怎么知道代理ip是否生效,沒生效的話哪里出了問題,個(gè)人使用的代理ip(付費(fèi))。
代理ip原理
輸入網(wǎng)址后發(fā)生了什么呢?
1.瀏覽器獲取域名
2.通過(guò)DNS協(xié)議獲取域名對(duì)應(yīng)服務(wù)器的ip地址
3.瀏覽器和對(duì)應(yīng)的服務(wù)器通過(guò)三次握手建立TCP連接
4.瀏覽器通過(guò)HTTP協(xié)議向服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求
5.服務(wù)器將查詢結(jié)果返回給瀏覽器
6.四次揮手釋放TCP連接
7.瀏覽器渲染結(jié)果
其中涉及到了:
應(yīng)用層:HTTP和DNS
傳輸層:TCP UDP
網(wǎng)絡(luò)層:IP ICMP ARP
代理ip做了什么呢?
簡(jiǎn)單來(lái)說(shuō),就是:
原本你的訪問
使用代理后你的訪問
為什么要用代理呢?
因?yàn)槲覀冊(cè)谧雠老x的過(guò)程中經(jīng)常會(huì)遇到這樣的情況,最初爬蟲正常運(yùn)行,正常抓取數(shù)據(jù),一切看起來(lái)都是那么美好,然而一杯茶的功夫可能就會(huì)出現(xiàn)錯(cuò)誤,比如403 Forbidden,這時(shí)候打開網(wǎng)頁(yè)一看,可能會(huì)看到“您的IP訪問頻率太高”這樣的提示。出現(xiàn)這種現(xiàn)象的原因是網(wǎng)站采取了一些反爬蟲措施。比如,服務(wù)器會(huì)檢測(cè)某個(gè)IP在單位時(shí)間內(nèi)的請(qǐng)求次數(shù),如果超過(guò)了這個(gè)閾值,就會(huì)直接拒絕服務(wù),返回一些錯(cuò)誤信息,這種情況可以稱為封IP。而代理ip就避免了這個(gè)問題:
爬蟲代碼中使用代理ip
就像是請(qǐng)求時(shí)偽裝頭一樣,偽裝ip,注意是{}
proxies={ 'https':'117.29.228.43:64257', 'http':'117.29.228.43:64257' } requests.get(url,headers=head,proxies=proxies,timeout=3)#proxies
檢驗(yàn)代理ip是否生效
我們?cè)L問一個(gè)網(wǎng)站,這個(gè)網(wǎng)站會(huì)返回我們的ip地址:
print(requests.get('http://httpbin.org/ip',proxies=proxies,timeout=3).text)
我們看一下我使用了四個(gè)不同的代理ip,全部生效了,
未生效問題排查
如果你返回的還是本機(jī)地址,99%試一下兩種情況之一:
1.請(qǐng)求協(xié)議不匹配
簡(jiǎn)單來(lái)說(shuō)就是,如果你請(qǐng)求的是http,就要用http的協(xié)議,如果是https,就要用https的協(xié)議。
如果我請(qǐng)求是http,但只有https,就會(huì)使用本機(jī)ip。
2.代理失效
便宜沒好貨,好貨不便宜。如果確實(shí)大規(guī)模爬蟲是必須的話,還是買代理ip比較好,網(wǎng)上廣告滿天飛的某些代理實(shí)際性價(jià)比有些低了,自己常用的就不分享了,總是被當(dāng)成廣告,推薦一些其他的比如:
1、IPIDEA
2、Stormproxies
3、YourPrivateProxy
4、GeoSurf
當(dāng)然還有大家熟知的快代理,西刺等等,都有一些免費(fèi)代理可供使用。
總結(jié)
到此為止,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128253.html
摘要:背景分析至此,下一步要解決的問題就是完成一次獨(dú)立的請(qǐng)求,并解析得到目標(biāo)數(shù)據(jù)。上方地址欄的網(wǎng)址是請(qǐng)求的入口,中間圓角方框中的格式天津則是請(qǐng)求參數(shù)。當(dāng)我看到中的天津時(shí),非常開心,因?yàn)槲艺业搅苏?qǐng)求的入口。 概要 背景描述 網(wǎng)站和http請(qǐng)求分析 IP受限的問題 1. 背景描述 大為軟件公司于2001年9月在保定國(guó)家高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)注冊(cè),公司致力于中國(guó)、日本知識(shí)產(chǎn)權(quán)軟件的研究開發(fā),立志成...
摘要:學(xué)習(xí)網(wǎng)絡(luò)爬蟲主要分個(gè)大的版塊抓取,分析,存儲(chǔ)另外,比較常用的爬蟲框架,這里最后也詳細(xì)介紹一下。網(wǎng)絡(luò)爬蟲要做的,簡(jiǎn)單來(lái)說(shuō),就是實(shí)現(xiàn)瀏覽器的功能。 Python學(xué)習(xí)網(wǎng)絡(luò)爬蟲主要分3個(gè)大的版塊:抓取,分析,存儲(chǔ) 另外,比較常用的爬蟲框架Scrapy,這里最后也詳細(xì)介紹一下。 首先列舉一下本人總結(jié)的相關(guān)文章,這些覆蓋了入門網(wǎng)絡(luò)爬蟲需要的基本概念和技巧:寧哥的小站-網(wǎng)絡(luò)爬蟲,當(dāng)我們?cè)跒g覽器中輸入...
摘要:總的來(lái)說(shuō)有兩種反爬策略,要么驗(yàn)證身份,把蟲子踩死在門口要么在網(wǎng)站植入各種反爬機(jī)制,讓爬蟲知難而退。本節(jié)內(nèi)容就著這兩種反爬策略提出一些對(duì)策。內(nèi)嵌反爬很靈活,沒有什么固定的代碼格式,要花時(shí)間去分析出來(lái)。 ??之前提到過(guò),有些網(wǎng)站是防爬蟲的。其實(shí)事實(shí)是,凡是有一定規(guī)模的網(wǎng)站,大公司的網(wǎng)站,或是盈利性質(zhì)比較強(qiáng)的網(wǎng)站,都是有高級(jí)的防爬措施的。總的來(lái)說(shuō)有兩種反爬策略,要么驗(yàn)證身份,把蟲子踩死在門口...
摘要:使用中間件本次的測(cè)試站點(diǎn)依舊使用,通過(guò)訪問可以獲取當(dāng)前請(qǐng)求的地址。中間件默認(rèn)是開啟的,可以查看其源碼重點(diǎn)為方法。修改代理的方式非常簡(jiǎn)單,只需要在請(qǐng)求創(chuàng)建的時(shí)候,增加參數(shù)即可。接下來(lái)將可用的代理保存到文件中。同步修改文件中的代碼。 ...
摘要:前言本文記錄自己在學(xué)習(xí)當(dāng)中遇到的各種大小問題,持續(xù)更新。錯(cuò)誤分析本身是一個(gè)網(wǎng)絡(luò)引擎框架,的運(yùn)行依賴于。在打開新建的項(xiàng)目后,報(bào)錯(cuò)顯示。錯(cuò)誤分析的默認(rèn)依賴項(xiàng)當(dāng)中沒有,或者說(shuō)默認(rèn)查找的路徑中找不到。 前言 本文記錄自己在學(xué)習(xí)scrapy當(dāng)中遇到的各種大小問題,持續(xù)更新。 環(huán)境簡(jiǎn)介: 語(yǔ)言版本 爬蟲框架 IDE 系統(tǒng) python3.5 scrapy1.4.0 pycharm win1...
閱讀 956·2023-01-14 11:38
閱讀 936·2023-01-14 11:04
閱讀 787·2023-01-14 10:48
閱讀 2157·2023-01-14 10:34
閱讀 1005·2023-01-14 10:24
閱讀 895·2023-01-14 10:18
閱讀 545·2023-01-14 10:09
閱讀 622·2023-01-14 10:02