1. 使用了代理伺服器,就能隱藏IP 了嗎
不是隱藏IP,對方看到的是代理的IP,
而不是你真實的IP而已。
2. 如何應對網站反爬蟲策略如何高效地爬大量數據
一般有一下幾種
一些常用的方法
IP代理
對於IP代理,各個語言的Native Request API都提供的IP代理響應的API, 需要解決的主要就是IP源的問題了.
網路上有廉價的代理IP(1元4000個左右), 我做過簡單的測試, 100個IP中, 平均可用的在40-60左右, 訪問延遲均在200以上.
網路有高質量的代理IP出售, 前提是你有渠道.
因為使用IP代理後, 延遲加大, 失敗率提高, 所以可以將爬蟲框架中將請求設計為非同步, 將請求任務加入請求隊列(RabbitMQ,Kafka,Redis), 調用成功後再進行回調處理, 失敗則重新加入隊列. 每次請求都從IP池中取IP, 如果請求失敗則從IP池中刪除該失效的IP.
Cookies
有一些網站是基於cookies做反爬蟲, 這個基本上就是如 @朱添一 所說的, 維護一套Cookies池
注意研究下目標網站的cookies過期事件, 可以模擬瀏覽器, 定時生成cookies
限速訪問
像開多線程,循環無休眠的的暴力爬取數據, 那真是分分鍾被封IP的事, 限速訪問實現起來也挺簡單(用任務隊列實現), 效率問題也不用擔心, 一般結合IP代理已經可以很快地實現爬去目標內容.
一些坑
大批量爬取目標網站的內容後, 難免碰到紅線觸發對方的反爬蟲機制. 所以適當的告警提示爬蟲失效是很有必有的.
一般被反爬蟲後, 請求返回的HttpCode為403的失敗頁面, 有些網站還會返回輸入驗證碼(如豆瓣), 所以檢測到403調用失敗, 就發送報警, 可以結合一些監控框架, 如Metrics等, 設置短時間內, 告警到達一定閥值後, 給你發郵件,簡訊等.
當然, 單純的檢測403錯誤並不能解決所有情況. 有一些網站比較奇葩, 反爬蟲後返回的頁面仍然是200的(如去哪兒), 這時候往往爬蟲任務會進入解析階段, 解析失敗是必然的. 應對這些辦法, 也只能在解析失敗的時候, 發送報警, 當告警短時間到達一定閥值, 再觸發通知事件.
當然這個解決部分並不完美, 因為有時候, 因為網站結構改變, 而導致解析失敗, 同樣回觸發告警. 而你並不能很簡單地區分, 告警是由於哪個原因引起的.
3. 為什麼用了代理還是上不去被封IP的網站
解決異常的方法可以嘗試一下換IP
電腦換IP很簡單,使用雙魚IP轉換器
手機換IP可以將手機設置為飛行模式10分鍾後再重新打開就是不同的IP了
4. 有的網站為什麼不能用代理IP
現在越來越多的人使用代理IP。都說代理IP好用,是大家的好幫手。但是要想用好代理IP,還是需要對代理IP了解透徹。可能有一些相對專業的知識,但你可能不太清楚。那麼使用代理IP有哪些注意事項呢?以下IPIDEA全球代理IP介紹了新手使用代理IP的一些注意事項:
1.登陸問題。
有的優質代理IP需要授權,不授權就變成百萬人騎。常用的授權方式有兩種,一種是綁定機IP模式(俗稱加白名單)。注意:這里是使用代理的綁定機器IP,不是提取代理的機器IP;一種是用戶名+密碼模式,使用代理時需要用戶名+密碼授權。
常見問題:機器IP綁定,但授權模式選擇「用戶名+密碼」。很多人遇到這個問題,授權咨詢至少有一半是這個問題。
2.頻繁訪問IP。
一個IP越並發,使用越頻繁,目標網站封IP的可能性越大。我們知道,目標網站都有防爬機制,主要是為了緩解伺服器的壓力。如果在短時間內發送了太多請求,並且達到了設置的閾值,則IP訪問將受到限制。
判斷方法:如果瀏覽器設置代理IP訪問目標網站成功,軟體或程序中代理IP對目標網站的請求失敗,很可能是被攔截的IP過大。
3.IP的數量
看代理IPs的數量,有些項目需要更多的IPs,代理IPS的數量與質量有關。比如全國各地都有自營伺服器的話,可以提供更多高質量的代理IP,這個時候做一些工作會比較方便。
使用代理IP有哪些注意事項?以上介紹了四個注意事項,但其實不止以上幾點,新手可以做以參考。
5. 被反爬蟲會顯示什麼
網速會有影響,部分頁面會顯示無法預覽。
從用戶請求的 Headers 反爬蟲是最常見的反爬蟲策略。很多網站都會對 Headers 的 User-Agent 進行檢測,還有一部分網站會對 Referer 進行檢測(一些資源網站的防盜鏈就是檢測 Referer)。
如果 遇到了這類反爬蟲機制,可以直接在爬蟲中添加 Headers,將瀏覽器的 User-Agent 復制到爬蟲的 Headers 中;或者將 Referer 值修改為目標網站域名。對於檢測 Headers 的反爬蟲,在爬蟲中修改或 者添加 Headers 就能很好的繞過。
基於用戶行為反爬蟲
有一部分網站是通過檢測用戶行為,例如同一 IP 短時間內多次訪問同一頁面,或者同一賬戶短時 間內多次進行相同操作。
大多數網站都是前一種情況,對於這種情況,使用 IP 代理就可以解決。可以專門寫一個爬蟲,爬取 網上公開的代理 ip,檢測後全部保存起來。這樣的代理 ip 爬蟲經常會用到,最好自己准備一個。有了 大量代理 ip 後可以每請求幾次更換一個 ip,這在 requests 或者 urllib2 中很容易做到,這樣就能很容 易的繞過第一種反爬蟲。
對於第二種情況,可以在每次請求後隨機間隔幾秒再進行下一次請求。有些有邏輯漏洞的網站,可 以通過請求幾次,退出登錄,重新登錄,繼續請求來繞過同一賬號短時間內不能多次進行相同請求的限 制。
6. 網路爬蟲為什麼要使用爬蟲代理
爬蟲代理是爬蟲過程中不可或缺的要素。當你爬取的數據達到一定量後,你會發現程序會時不時給你報錯,而且頻率越來越來高。這說你的爬蟲被人家識別出來了,對方的反扒系統已經記住了你。通常會告訴你連接超時、連接中斷更有甚者會直接中斷你程序。
User-Agent是一個特殊字元串頭,被廣泛用來標示瀏覽器客戶端的信息,使得伺服器能識別客戶機使用的操作系統和版本,CPU類型,瀏覽器及版本,瀏覽器的渲染引擎,瀏覽器語言等。
不同的瀏覽器會用不同的用戶代理字元串作為自身的標志,當搜索引擎在通過網路爬蟲訪問網頁時,也會通過用戶代理字元串來進行自身的標示,這也是為何網站統計報告能夠統計瀏覽器信息,爬蟲信息等。網站需要獲取用戶客戶端的信息,了解網站內容在客戶端的展現形式,一些網站通過判斷UA來給不同的操作系統,不同的瀏覽器發送不同的頁面,不過這也可能造成某些頁面無法再某個瀏覽器中正常顯示.
我們可以獲取隨機User-Agent與使用,用上了隨機User-Agent和代理IP大部分網站就沒有什麼問題了,但還是會出現一些反扒措施比較厲害的網站,還需要使用代理IP來破除IP限制的。
7. 爬蟲怎麼解決ip不足的問題
1.爬蟲降低訪問速度
由於上文所說的訪問速度過快會引起IP被封,那麼最直觀的辦法便是降低訪問速度,如此就能防止了我們的IP被封的問題。但呢,降低速度,爬蟲的效率就降低,關鍵還是要降低到什麼程度?
首先要測試出網站設置的限制速度閾值,根據限速設置合理的訪問速度。
建議不要設固定的訪問速度,能夠設置在一個范圍之內,防止過於規律而被系統檢測到,從而導致IP被封。
降低了訪問速度,難以避免的影響到了爬取的抓取效率,不能高效地抓取,如此的抓取速度與人工抓取有何區別呢?都沒有了使用爬蟲抓取的優勢了。
2.爬蟲切換IP訪問
既然單個爬蟲被控制了速度,但我們可以使用多個爬蟲同時去抓取啊!
我們可以使用多線程,多進程,這里要配合使用代理,不同的線程使用不同的IP地址,就像是同時有不同的用戶在訪問,如此就能極大地提高爬蟲的爬取效率了。
對於能夠提示效率的代理IP,爬蟲要選擇優質的使用,質量差的也是會影響效果的,可以考慮使用HTTP代理,像IP數量和質量都相當的不錯,大家去測試使用下就知道了。
以上介紹了關於爬蟲IP被封的問題分析,從原因到解決辦法,不建議粗暴使用爬蟲,合理的使用,效果更加好。並且降低爬蟲的速度,能夠減輕爬蟲帶給網站的壓力,這對雙方都是有好處的。
8. 如何應對網站反爬蟲策略如何高效地爬大量數據
少做這種雞鳴狗盜的事