iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
AI & Data

網路爬蟲,萬物皆爬 - 30 天搞懂並實戰網路爬蟲及應對反爬蟲技術系列 第 29

【Day 29】- 應對反爬蟲技術-綜合篇

前情提要

昨天跟各位讀者簡介了反爬蟲技術中,較常出現的驗證碼之應對方法。

開始之前

今天要跟各位介紹的是其它也是常出現的一些反爬蟲技術。

以下列舉出今天會跟各位介紹的反爬蟲技術。

  • Request Headers 檢查

  • 使用者操作狀況檢查

  • 資料載入狀況檢查

  • Request Headers 檢查

有時候被爬取網站會檢測目前請求的 Request Headers ,常見的會看 User-Agent,這個的應對方法也十分容易,就是在 Request Headers 上加入自己在瀏覽器上截取的 User-Agent。

我們在之前的文章也有使用過這個方法。

https://ithelp.ithome.com.tw/articles/10275197

在 Python 的 Requests 庫中只要將 Request Headers 當參數傳入即可。

url = 'https://www.google.com/search?q=%E7%BE%8E%E9%87%91'
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36'
resp = requests.get(url, headers={
    'user-agent': user_agent
})
  • 使用者操作狀況檢查

有些被爬取網站會檢查使用者的操作狀況。常見的例如查看向網頁請求的來源 ip 的頻率/次數、查看網頁停留時間/渲染狀況等。

前者有兩種方式來解決。

  1. 每次請求都使用不同的 proxy,網路上只要搜尋 free proxy list 都能搜尋到許多免費的 proxy 資源,這邊分享一個 https://free-proxy-list.net/
  2. 在每次向其送出請求後,都固定休息一段時間,在 Python 中,可以使用 time 庫中的 sleep 函式來達到。
  • 資料載入狀況檢查

會依照資源載入狀況來進行反爬蟲。

這種會看網頁的渲染狀況的反爬蟲技術可以考慮使用 Requests-HTML 或者 Selenium 來使畫面渲染,達到模擬使用者的效果。

結語

本次介紹了除驗證碼外,其他常見的反爬蟲技術,也列舉了一些常見的應對方案,如果想要更深入了解反爬蟲技術的應對,可以去接觸資安相關的繞過手法。

補充資料

Free Proxy List : https://free-proxy-list.net/


上一篇
【Day 28】- 這個驗證碼有點難破解(應對反爬蟲技術-驗證碼篇)
下一篇
【Day 30】- 結語 : 從 0 開始的網路爬蟲
系列文
網路爬蟲,萬物皆爬 - 30 天搞懂並實戰網路爬蟲及應對反爬蟲技術30

尚未有邦友留言

立即登入留言