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