午夜国产理论片中文飘花|97在线起碰视频|在线观看免费网站看v片|欧美日韩在线视频一区

  1. <delect id="frdys"></delect>
  2. <delect id="frdys"></delect>
  3. <optgroup id="frdys"><ruby id="frdys"><dfn id="frdys"></dfn></ruby></optgroup>
  4. <pre id="frdys"><dd id="frdys"></dd></pre>
  5. <strike id="frdys"><blockquote id="frdys"><center id="frdys"></center></blockquote></strike>
      <delect id="frdys"><style id="frdys"><track id="frdys"></track></style></delect>
      知識庫 > 有哪些有趣的反爬蟲機制嗎?

      有哪些有趣的反爬蟲機制嗎?

      有哪些有趣的反爬蟲機制嗎?

      999人瀏覽
      石塘網(wǎng)
      相關欄目: 知識庫
      最新回答 2023-05-03 22:51:24
      分享
      共有3條回答
      你看我獨角獸嗎

      IP

      網(wǎng)站檢測網(wǎng)絡抓取活動的最簡單方法之一是通過IP跟蹤。該網(wǎng)站可以根據(jù)其行為識別IP是否是機器人。當網(wǎng)站發(fā)現(xiàn)定期 或在 短時間內(nèi) 從單個 IP地址 發(fā)送了 大量請求 時, 很有可能該IP被阻止,因為它被懷疑是機器人。在這種情況下,構建一個防爬蟲真正重要的是 每單位時間的訪問次數(shù) 和 訪問頻率。這是您可能會遇到的一些情況。

      方案1:幾秒鐘內(nèi)進行多次訪問。真正的人無法快速瀏覽。因此,如果您的搜尋器頻繁向網(wǎng)站發(fā)送請求,則該網(wǎng)站肯定會阻止將該IP識別為機器人的IP。

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

      方案2:以完全相同的速度訪問網(wǎng)站。真實的人類不會一遍又一遍地重復相同的行為模式。一些網(wǎng)站會監(jiān)視請求的頻率,如果以完全相同的模式(例如每秒一次)定期發(fā)送請求,則很可能會激活防抓取機制。

      解決方案:為搜尋器的每個步驟設置隨機延遲時間。以隨機的抓取速度,爬蟲的行為將更像人類瀏覽網(wǎng)站的方式。

      方案3:某些高級防爬技術將采用復雜的算法來跟蹤來自不同IP的請求并分析其平均請求。如果IP的請求異常,例如每天發(fā)送相同數(shù)量的請求或在同一時間訪問相同的網(wǎng)站,則會被阻止。

      解決方案:定期更改您的IP。大多數(shù)VPN服務,云服務器和代理服務都可以提供輪換IP。通過這些旋轉(zhuǎn)的IP發(fā)送請求時,爬網(wǎng)程序的行為不像漫游器,這可以減少被阻止的風險。

      登錄

      許多網(wǎng)站,尤其是諸如Twitter和Facebook之類的社交媒體平臺,僅在您登錄網(wǎng)站后才向您顯示信息。為了對此類站點進行爬網(wǎng),爬網(wǎng)程序還需要模擬日志記錄步驟。

      登錄網(wǎng)站后,搜尋器需要保存cookie。Cookie是一小段數(shù)據(jù),用于存儲用戶的瀏覽數(shù)據(jù)。如果沒有Cookie,該網(wǎng)站會忘記您已經(jīng)登錄,并要求您再次登錄。

      此外,某些具有嚴格抓取機制的網(wǎng)站可能僅允許部分訪問數(shù)據(jù),例如即使登錄后每天也有1000行數(shù)據(jù)。

      您的漫游器需要知道如何登錄

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

      2)首先登錄,然后保存 cookie。對于允許cookie的網(wǎng)站,他們會通過保存cookie來記住用戶。有了這些Cookie,您無需在短期內(nèi)再次登錄該網(wǎng)站。由于采用了這種機制,您的搜尋器可以避免繁瑣的登錄步驟,并且無需收集所需的信息。

      3)不幸的是,如果遇到上述嚴格的轉(zhuǎn)義機制,則可以安排抓取工具以固定頻率(例如每天一次)來監(jiān)視網(wǎng)站。計劃搜尋器在一段時間內(nèi)抓取最新的1000行數(shù)據(jù)并累積最新的數(shù)據(jù)。

      UA

      UA代表的是User-Agent,它是網(wǎng)站的標頭,用于識別用戶的訪問方式。它包含諸如操作系統(tǒng)及其版本,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

      抓取網(wǎng)站時,如果您的搜尋器不包含標題,則只會將其自身標識為腳本(例如,如果使用python來構建搜尋器,則它將自身聲明為python腳本)。網(wǎng)站肯定會阻止腳本發(fā)出的請求。在這種情況下,搜尋器必須偽裝成帶有UA標頭的瀏覽器,以便網(wǎng)站可以為其提供訪問權限。

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

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

      更改UA信息,直到找到正確的信息。如果長時間使用相同的UA,則應用了復雜的防爬網(wǎng)技術的某些敏感網(wǎng)站甚至可能阻止訪問。在這種情況下,您需要定期更改UA信息。

      5.AJAX

      如今,更多的網(wǎng)站是使用AJAX開發(fā)的,而不是傳統(tǒng)的Web開發(fā)技術。AJAX代表異步JavaScript和XML,這是一種異步更新網(wǎng)站的技術。簡而言之,當頁面內(nèi)僅進行少量更改時,無需重新加載整個網(wǎng)站。

      那么您怎么知道一個網(wǎng)站是否適用AJAX?

      沒有AJAX的網(wǎng)站:即使您僅在網(wǎng)站上進行了很小的更改,整個頁面也會被刷新。通常,會出現(xiàn)加載符號,并且URL會更改。對于這些網(wǎng)站,我們可以利用該機制并嘗試找到URL更改方式的模式。然后,您可以批量生成URL,并直接通過這些URL提取信息,而不必教您的爬蟲如何導航類似人類的網(wǎng)站。

      帶有AJAX的網(wǎng)站:僅更改您單擊的位置,并且不會出現(xiàn)加載標志。通常,Web URL不會更改,因此搜尋器必須以直接的方式進行處理。

      對于AJAX開發(fā)的某些復雜網(wǎng)站,將需要特殊的技術來找出那些網(wǎng)站上獨特的加密方式并提取加密數(shù)據(jù)。解決此問題可能很耗時,因為加密的方式在不同的頁面上會有所不同。如果您可以找到帶有內(nèi)置JS操作的瀏覽器,那么它可以自動解密網(wǎng)站并提取數(shù)據(jù)。

      萌新程序員成長日記

      說下我以前爬某電影評分網(wǎng)站時遇到的反爬機制吧,感覺還挺有趣的。

      爬數(shù)據(jù)時遇到的問題

      首先來說說我在爬數(shù)據(jù)時遇到的問題,看圖:

      頁面上正確顯示了評分為9.5,按F12打開調(diào)試模式,找到該元素節(jié)點時發(fā)現(xiàn)顯示的是兩個框框,再打開源碼發(fā)現(xiàn)是一串亂碼。

      頁面數(shù)字顯示正常,在源碼中卻顯示亂碼,可以肯定該網(wǎng)站肯定采取了反爬蟲機制,有點意思!

      反爬蟲機制原理

      下面分析一下這個反爬蟲機制的原理。

      做過web前端開發(fā)的人知道顯示框框一般都是由于引用了字體文件引起,那么這個網(wǎng)站反爬蟲機制會不會跟字體文件有關呢?

      刷新一下頁面,發(fā)現(xiàn)一個字體文件的請求:

      我們手動將這個字體文件下載下來,使用字體編輯工具打開:

      雖然我不是太懂字體文件的原理,但是按我的理解其實就是一個字符和數(shù)字關系映射文件,例如字符E282對應數(shù)字9、字符F11B對應數(shù)字5。

      現(xiàn)在我們再來看一下源碼里的亂碼:

      有沒有看出什么端倪?

      是的,它們并不是什么亂碼,而是而字體文件里的字符一一對應的!

      根據(jù)對應關系可以推斷出亂碼“.”對應數(shù)字9.5,正好和頁面上顯示的是一致的。

      總結(jié)

      這個反爬蟲機制的現(xiàn)象是頁面顯示數(shù)字正常,但是源碼里顯示亂碼;這個反爬蟲機制的工作原理就是通過字體文件將亂碼和數(shù)字建立好映射關系。

      象牙之森

      傳統(tǒng)的ua限制,ip請求限制,驗證碼等就不說了,來點新鮮的吧


      轉(zhuǎn)換字體,需要做字體映射,比如大眾點評

      每一項生成不同css或者id,增加規(guī)則定義難度,比如某些搜索引擎

      在內(nèi)容元素上增加一個浮動塊,讓用戶選不中當前元素

      圖片需要滾動到可見窗口的時候才裝載,不然不裝載,并且圖片地址也不對,比如阿里巴巴國際版


      如果用了工具,比如八爪魚,后羿,迷你派等采集器的感受可能會深一點。

      登錄后才能進行回答
       
      關注石塘網(wǎng)
      關注我們