python爬蟲(chóng)之代理ip正確使用方法實(shí)例
主要內(nèi)容:代理ip使用原理,怎么在自己的爬蟲(chóng)里設(shè)置代理ip,怎么知道代理ip是否生效,沒(méi)生效的話(huà)哪里出了問(wèn)題,個(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ù)器將查詢(xún)結(jié)果返回給瀏覽器
6.四次揮手釋放TCP連接
7.瀏覽器渲染結(jié)果
其中涉及到了:
應(yīng)用層:HTTP和DNS
傳輸層:TCP UDP
網(wǎng)絡(luò)層:IP ICMP ARP
代理ip做了什么呢?
簡(jiǎn)單來(lái)說(shuō),就是:
原本你的訪(fǎng)問(wèn)
使用代理后你的訪(fǎng)問(wèn)
為什么要用代理呢?
因?yàn)槲覀冊(cè)谧雠老x(chóng)的過(guò)程中經(jīng)常會(huì)遇到這樣的情況,最初爬蟲(chóng)正常運(yùn)行,正常抓取數(shù)據(jù),一切看起來(lái)都是那么美好,然而一杯茶的功夫可能就會(huì)出現(xiàn)錯(cuò)誤,比如403 Forbidden,這時(shí)候打開(kāi)網(wǎng)頁(yè)一看,可能會(huì)看到“您的IP訪(fǎng)問(wèn)頻率太高”這樣的提示。出現(xiàn)這種現(xiàn)象的原因是網(wǎng)站采取了一些反爬蟲(chóng)措施。比如,服務(wù)器會(huì)檢測(cè)某個(gè)IP在單位時(shí)間內(nèi)的請(qǐng)求次數(shù),如果超過(guò)了這個(gè)閾值,就會(huì)直接拒絕服務(wù),返回一些錯(cuò)誤信息,這種情況可以稱(chēng)為封IP。而代理ip就避免了這個(gè)問(wèn)題:
爬蟲(chóng)代碼中使用代理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問(wèn)一個(gè)網(wǎng)站,這個(gè)網(wǎng)站會(huì)返回我們的ip地址:
print(requests.get('http://httpbin.org/ip', proxies=proxies, timeout=3).text)
我們看一下我使用了四個(gè)不同的代理ip,全部生效了,
未生效問(wèn)題排查
如果你返回的還是本機(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.代理失效
便宜沒(méi)好貨,好貨不便宜。如果確實(shí)大規(guī)模爬蟲(chóng)是必須的話(huà),還是買(mǎi)代理ip比較好,網(wǎng)上廣告滿(mǎn)天飛的某些代理實(shí)際性?xún)r(jià)比有些低了,自己常用的就不分享了,總是被當(dāng)成廣告,推薦一些其他的比如:
1、IPIDEA
2、Stormproxies
3、YourPrivateProxy
4、GeoSurf
當(dāng)然還有大家熟知的快代理,西刺等等,都有一些免費(fèi)代理可供使用。
總結(jié)
到此這篇關(guān)于python爬蟲(chóng)之代理ip正確使用方法的文章就介紹到這了,更多相關(guān)python爬蟲(chóng)代理ip內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python7個(gè)爬蟲(chóng)小案例詳解(附源碼)中篇
- Python7個(gè)爬蟲(chóng)小案例詳解(附源碼)上篇
- Python爬蟲(chóng)程序中使用生產(chǎn)者與消費(fèi)者模式時(shí)進(jìn)程過(guò)早退出的問(wèn)題
- Python爬蟲(chóng)庫(kù)urllib的使用教程詳解
- Python利用yield?form實(shí)現(xiàn)異步協(xié)程爬蟲(chóng)
- python爬蟲(chóng)之requests庫(kù)使用代理方式
- python?基于aiohttp的異步爬蟲(chóng)實(shí)戰(zhàn)詳解
- Python爬蟲(chóng)框架NewSpaper使用詳解
- 通過(guò)python爬蟲(chóng)mechanize庫(kù)爬取本機(jī)ip地址的方法
- Python爬蟲(chóng)學(xué)習(xí)之requests的使用教程
- python爬蟲(chóng)beautiful?soup的使用方式
- Python爬蟲(chóng)之超級(jí)鷹驗(yàn)證碼應(yīng)用
- Python爬蟲(chóng)Requests庫(kù)的使用詳情
- python爬蟲(chóng)模擬登錄之圖片驗(yàn)證碼實(shí)現(xiàn)詳解
- Python爬蟲(chóng)eval實(shí)現(xiàn)看漫畫(huà)漫畫(huà)柜mhgui實(shí)戰(zhàn)分析
- python爬蟲(chóng)實(shí)戰(zhàn)項(xiàng)目之爬取pixiv圖片
- 使用python爬蟲(chóng)實(shí)現(xiàn)子域名探測(cè)問(wèn)題
- Python7個(gè)爬蟲(chóng)小案例詳解(附源碼)下篇
相關(guān)文章
python機(jī)器學(xué)習(xí)之隨機(jī)森林(七)
這篇文章主要為大家詳細(xì)介紹了python機(jī)器學(xué)習(xí)之隨機(jī)森林,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Python pandas 計(jì)算每行的增長(zhǎng)率與累計(jì)增長(zhǎng)率
這篇文章主要介紹了Python pandas 計(jì)算每行的增長(zhǎng)率與累計(jì)增長(zhǎng)率,文章舉例詳細(xì)說(shuō)明。需要的小伙伴可以參考一下2022-03-03Python?創(chuàng)建或讀取?Excel?文件的操作代碼
Excel是一種常用的電子表格軟件,廣泛應(yīng)用于金融、商業(yè)和教育等領(lǐng)域,本文介紹Python?創(chuàng)建或讀取?Excel?文件的操作代碼,感興趣的朋友一起看看吧2023-09-09python 如何用map()函數(shù)創(chuàng)建多線(xiàn)程任務(wù)
這篇文章主要介紹了python 使用map()函數(shù)創(chuàng)建多線(xiàn)程任務(wù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04淺談Python數(shù)學(xué)建模之?dāng)?shù)據(jù)導(dǎo)入
數(shù)據(jù)導(dǎo)入是所有數(shù)模編程的第一步,比你想象的更重要。Python 語(yǔ)言中數(shù)據(jù)導(dǎo)入的方法很多。對(duì)于數(shù)學(xué)建模問(wèn)題編程來(lái)說(shuō),選擇什么方法最好呢?答案是:沒(méi)有最好的,只有最合適的。對(duì)于不同的問(wèn)題,不同的算法,以及所調(diào)用工具包的不同實(shí)現(xiàn)方法,對(duì)于數(shù)據(jù)就會(huì)有不同的要求2021-06-06