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