目錄
搜索引擎抓取
編輯搜索引擎抓取是從Google、Bing或Yahoo 等搜索引擎中收集URL,描述或其他信息的過程。這是專門用于搜索引擎的屏幕抓取或網絡抓取的一種特定形式。
最常見的大型搜索引擎優化(SEO)提供商依賴于定期從搜索引擎(尤其是Google)中抓取關鍵字,以監控其客戶網站在相關關鍵字或索引狀態方面的競爭地位。
諸如Google之類的搜索引擎不允許對其服務進行任何形式的自動訪問,但是從法律的角度來看,沒有已知的案例或違法行為。
進入網站并以自動化方式提取數據的過程通常也稱為“?爬網?”。諸如Google,Bing或Yahoo之類的搜索引擎幾乎都從自動抓取機器人中獲取了所有數據。
檢測
編輯當搜索引擎防御認為訪問可能是自動化的時,搜索引擎可能會做出不同的反應。
防御的xxx層是一個驗證碼頁面,在該頁面中,系統會提示用戶確認他是真實的人,而不是機器人或工具。解決驗證碼將創建一個cookie,該cookie允許再次訪問搜索引擎一段時間。大約一天后,驗證碼頁面再次被刪除。
防御的第二層是類似的錯誤頁面,但沒有驗證碼,在這種情況下,用戶被完全阻止使用搜索引擎,直到解除臨時阻止或用戶更改其IP。
第三層防御是整個網絡段的長期障礙。Google封鎖大型網絡封鎖已有幾個月了。這種阻止很可能是由管理員觸發的,并且僅在抓取工具發送大量請求時才會發生。
所有這些形式的檢測也可能發生于普通用戶,尤其是共享相同IP地址或網絡類別(IPV4范圍以及IPv6范圍)的用戶。
刮除Google、Bing或Yahoo的方法
要成功抓取搜索引擎,兩個主要因素是時間和數量。
用戶需要刮除的關鍵字越多,完成工作的時間越短、刮除的難度就越大,并且刮除腳本或工具的開發也就越必要。
抓取腳本需要克服一些技術挑戰:
- 使用代理進行IP輪換(代理應該不共享并且不在黑名單中)
- 正確的時間管理,關鍵字更改之間的時間,分頁以及正確放置的延遲有效的長期抓取速度可以從每小時僅3–5個請求(關鍵字或頁面)變化到每個使用的每個IP地址/代理每小時100個甚至更多。IP的質量、抓取方法、請求的關鍵字以及請求的語言/國家/地區可能會極大地影響可能的最高比率。
- 正確處理URL參數,cookie以及HTTP標頭,以使用典型的瀏覽器模擬用戶
- HTML?DOM解析(從HTML代碼中提取URL、描述、排名位置、站點鏈接和其他相關數據)
- 錯誤處理,對驗證碼或阻止頁面的自動響應以及其他異常響應
- 驗證碼定義如上文所述
GoogleScraper是利用上述技術的開源抓取軟件的示例。該框架通過DevTools協議控制瀏覽器,使Google很難檢測到該瀏覽器是自動的。
編程語言
編輯在為搜索引擎開發抓取工具時,幾乎可以使用任何編程語言,但根據性能要求,某些語言將是有利的。
PHP是一種用于編寫網站或后端服務的抓取腳本的常用語言,它具有內置的強大功能(DOM解析器,libcURL),但其內存使用量通常是類似C / C ++代碼的十倍。Ruby on Rails和Python也經常用于自動抓取作業。為了獲得最高性能,應考慮使用C ++ DOM解析器。
甚至bash腳本也可以與cURL一起用作命令行工具來抓取搜索引擎。
工具和腳本
開發搜索引擎抓取工具時,有幾種現有的工具和庫可供使用,擴展或分析以供借鑒。
- iMacros-一個免費的瀏覽器自動化工具包,可用于從用戶瀏覽器中進行非常小批量的抓取
- cURL?–用于自動化和測試的命令行瀏覽器,以及可用于多種編程語言的強大的開放源代碼HTTP交互庫。
- GoogleScraper 一個Python模塊,通過使用代理(socks4 / 5,http代理)來抓取不同的搜索引擎(例如Google、Yandex、Bing、Duckduckgo、百度等)。該工具包括異步聯網支持,并且能夠控制實際的瀏覽器以減輕檢測。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/111925/