iT邦幫忙

3

你可能遇到的防刮技術...

  • 分享至 

  • xImage
  •  

隨著大數據的出現,人們開始在網絡抓取工具的幫助下從互聯網上獲取數據進行數據分析。有多種方法可以製作自己的抓取工具:瀏覽器中的擴展,使用Beautiful Soup或Scrapy的python編碼,以及Octoparse等數據提取工具。

然而,蜘蛛和反機器人之間始終存在編碼戰爭。 Web開發人員應用不同類型的反刮技術來防止他們的網站被刮掉。在本文中,我列出了五種最常見的防刮技術以及如何避免這些技術。

 

1.IP

網站檢測網絡抓取活動的最簡單方法之一是通過IP跟踪。該網站可以基於其行為來識別IP是否是機器人。當一個網站發現從一個IP地址週期性地或在短時間內發出了絕大多數的請求時,IP很可能被阻止,因為它被懷疑是機器人。在這種情況下,構建防刮爬行器真正重要的是每單位時間的訪問次數和頻率。以下是您可能遇到的一些情況。

場景1:在幾秒鐘內進行多次訪問。真正的人類無法快速瀏覽。因此,如果您的抓取工具經常向網站發送請求,該網站肯定會阻止IP將其識別為機器人。

解決方案:減慢刮削速度。在執行或增加兩個步驟之間的等待時間之前設置延遲時間(例如“睡眠”功能)將始終有效。

場景2:以完全相同的速度訪問網站。真正的人類不會一遍又一遍地重複相同的行為模式。一些網站監控請求頻率,如果請求是以完全相同的模式定期發送的,例如每秒一次,則很可能會激活防刮擦機制。

解決方案:為爬網程序的每個步驟設置隨機延遲時間。使用隨機抓取速度,爬蟲的行為將更像人類瀏覽網站的方式。

 

場景3:一些高級反刮技術將採用複雜算法來跟踪來自不同IP的請求並分析其平均請求。如果IP的請求異常,例如每天在同一時間發送相同數量的請求或訪問同一網站,則會被阻止。

解決方案:定期更改IP。大多數VPN服務,雲服務器和代理服務都可以提供輪換IP。當通過這些輪換的IP發送請求時,爬蟲的行為不像機器人,這可以降低被阻止的風險。

 

 

 

2.Captcha

你在瀏覽網站時見過這種形象嗎?

1.點擊一下

點擊CAPTCHA

2.需要選擇特定的圖片

pic驗證碼

3.需要鍵入/選擇正確的字符串

 字符串驗證碼

 

這些圖像稱為Captcha。 Captcha代表完全自動化的公共圖靈測試,告訴計算機和人類。它是一個公共自動程序,用於確定用戶是人還是機器人。該程序將提供各種挑戰,例如降級圖像,填空或甚至方程,據說這些挑戰僅由人類解決。

該測試已經發展了很長時間,目前許多網站都使用Captcha作為反刮技術。曾經很難直接通過Captcha。但是現在,許多開源工具現在可用於解決Captcha問題,儘管它們可能需要更高級的編程技能。有些人甚至建立自己的特徵庫,並通過機器學習或深度學習技能創建圖像識別技術來通過此檢查。

 

比解決它更容易觸發它

對於大多數人來說,最簡單的方法是減慢或隨機化提取過程,以便不觸發Captcha測試。調整延遲時間或使用旋轉的IP可以有效降低觸發測試的概率

3.登錄

許多網站,尤其是Twitter和Facebook等社交媒體平台,只有在您登錄網站後才會向您顯示信息。為了抓取這些網站,抓取工具也需要模擬記錄步驟。

登錄網站後,爬蟲需要保存cookie。 Cookie是一小段數據,用於存儲用戶的瀏覽數據。沒有cookie,網站會忘記您已經登錄並要求您再次登錄。

此外,一些具有嚴格抓取機制的網站可能只允許部分訪問數據,例如每天甚至在登錄後1000行數據。

 

您的機器人需要知道如何登錄

1)模擬鍵盤和鼠標操作。爬蟲應該模擬登錄過程,其中包括使用鼠標單擊文本框和“登錄”按鈕,或使用鍵盤輸入帳戶和密碼信息等步驟。

2)先登錄然後保存cookie。對於允許使用Cookie的網站,他們會通過保存Cookie來記住用戶。使用這些cookie,無需在短期內再次登錄該網站。由於這種機制,您的爬蟲可以避免繁瑣的登錄步驟並刮掉您需要的信息。

3)如果您不幸遇到上述嚴格的刪除機制,您可以安排您的爬蟲以固定頻率監控網站,例如每天一次。安排爬蟲在句點中抓取最新的1000行數據並累積最新數據。

 

4.UA

UA代表User-Agent,它是網站的標題,用於標識用戶的訪問方式。它包含操作系統及其版本,CPU類型,瀏覽器及其版本,瀏覽器語言,瀏覽器插件等信息。

示例UA:Mozilla / 5.0(Macintosh; Intel Mac OS X 10_7_0)AppleWebKit / 535.11(KHTML,如Gecko)Chrome / 17.0.963.56 Safari / 535.11

在抓取網站時,如果您的抓取工具不包含任何標頭,它只會將自己標識為腳本(例如,如果使用python構建抓取工具,則會將自身聲明為python腳本)。網站肯定會阻止來自腳本的請求。在這種情況下,爬蟲必須將自己偽裝成具有UA標頭的瀏覽器,以便網站可以為其提供訪問權限。

有時,即使您使用相同的URL進入網站,網站也會向不同的瀏​​覽器或不同的版本顯示不同的頁面或信息。有可能是與其他瀏覽器被阻止時與一個瀏覽器兼容的信息。因此,為了確保您可以進入正確的頁面,需要多個瀏覽器和版本。

 

在不同的UA之間切換以避免被阻止

更改UA信息,直到找到正確的信息。如果長時間使用相同的UA,一些應用複雜的反刮技術的敏感網站甚至可能阻止訪問。在這種情況下,您需要定期更改UA信息。

 
5.AJAX

如今,使用AJAX而不是傳統的Web開發技術開發了更多的網站。 AJAX代表異步JavaScript和XML,這是一種異步更新網站的技術。簡而言之,當頁面內只發生小的變化時,整個網站不需要重新加載。

那你怎麼知道網站是否適用AJAX?

沒有AJAX的網站:即使您只在網站上做了一些小改動,整個頁面也會刷新。通常,會出現加載標誌,並且URL會發生變化。對於這些網站,我們可以利用該機制並嘗試查找URL如何更改的模式。然後,您可以批量生成URL並直接通過這些URL提取信息,而不是教您的爬蟲如何瀏覽像人類這樣的網站。

使用AJAX的網站:只會更改您單擊的位置,並且不會顯示加載標記。通常,Web URL不會更改,因此爬網程序必須以直接的方式處理它。

對於由AJAX開發的一些複雜網站,需要使用特殊技術在這些網站上找出獨特的加密方式並提取加密數據。解決此問題可能非常耗時,因為加密方式在不同頁面上有所不同。如果您可以找到具有內置JS操作的瀏覽器,那麼它可以自動解密網站並提取數據。

 

網絡刮擦和反刮技術每天都在進步。當您閱讀本文時,這些技術可能會過時。但是,您可以隨時從Octoparse獲得我們的幫助。在Octoparse,我們的任務是讓任何人都可以訪問數據,特別是那些沒有技術背景的人。作為一種網絡抓取工具,我們可以為您提供所有這五種防刮技術的可隨時部署的解決方案。當您需要為您的業務或項目提供強大的網絡抓取工具時,請隨時與我們聯繫!

Source: https://www.octoparse.com/blog/5-anti-scraping-techniques-you-may-encounter


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
erika
iT邦新手 5 級 ‧ 2019-08-19 10:01:06

有人對爬蟲技術感興趣的嘛...

erika iT邦新手 5 級 ‧ 2019-08-23 10:28:17 檢舉

然后?

我要留言

立即登入留言