有使用者一直好奇爬蟲識別網站上的爬蟲資料是如何整理的,今天就更大家來揭秘爬蟲資料是如何收集整理的。
透過查詢 IP 地址來獲得 rDNS 方式
我們可以透過爬蟲的 IP 地址來反向查詢 rDNS,例如:我們透過反向 DNS 查詢工具查詢此 IP: 116.179.32.160 ,rDNS 為:baiduspider-116-179-32-160.crawl.baidu.com
從上面大致可以判斷應該是百度搜尋引擎蜘蛛。由於 Hostname 可以偽造,所以我們只有反向查詢,仍然不準確。我們還需要正向查詢,我們透過 ping 命令查詢 baiduspider-116-179-32-160.crawl.baidu.com 能否被解析為:116.179.32.160,透過下圖可以看出 baiduspider-116-179-32-160.crawl.baidu.com 被解析為 116.179.32.160 的 IP 地址,說明是百度搜尋引擎爬蟲確信無疑。
透過 ASN 相關資訊查詢
並不是所有爬蟲都遵守上面的規定,大部分爬蟲反向查詢沒有任何結果,我們需要查詢 IP 地址的 ASN 資訊來判斷爬蟲資訊是不是正確。
例如:這個 IP 是 74.119.118.20,我們透過查詢 IP 資訊可以看到這個 IP 地址是美國加利福尼亞桑尼維爾的 IP 地址。
透過 ASN 資訊我們可以看出來他是 Criteo Corp. 公司的 IP。
上面的截圖是透過日誌記錄檢視到 critieo crawler 的記錄資訊,黃色部分是它的 User-agent ,後面是它的 IP,這條記錄也沒有什麼問題(這個 IP 的確是
CriteoBot 的 IP 地址)。
透過爬蟲的官方文件公佈的 IP 地址段
有一些爬蟲會公佈 IP 地址段,我們會將官方公佈的爬蟲 IP 地址段直接儲存到資料庫,這是一種既簡單又快捷的方法。
透過公開日誌
我們經常可以在網際網路上檢視到公開日誌,例如下圖就是我找到的公開日誌記錄:
我們可以對日誌記錄進行解析,根據 User-agent 來判斷那些是爬蟲,那些是訪客,極大的豐富了我們的爬蟲記錄資料庫。
總結
透過以上四個方式詳細說明了爬蟲識別網站是如何收集和整理爬蟲資料的,同時如何確保爬蟲資料的準確可靠,當然在實際操作過程中不僅僅是以上四種方法,不過都使用的比較少,所以在此處也不做介紹。