亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何從UserAgent識別搜索引擎并判斷真假蜘蛛

發布時間:2020-07-20 11:40:57 來源:億速云 閱讀:479 作者:清晨 欄目:編程語言

小編給大家分享一下如何從UserAgent識別搜索引擎并判斷真假蜘蛛,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

一般搜索引擎去爬取一個網站時,首先是去讀取網站的robots.txt 文件,看看網站管理員有沒有在該文件設置禁止某些蜘蛛,或禁止訪問

哪些路徑。然而一些流氓蜘蛛不會顧及robots.txt 文件,想爬哪就爬哪。這種情況管理員只能通過應用程序去識別判斷,是否限制某些訪

問。

識別搜索引擎

通過UserAgent 字符串來識別,下面例子是使用Go 來實現

簡單的是通過正則來識別:

spiderReg = regexp.MustCompile(`(?i)bot|crawl|spider|slurp|sohu-search|lycos|robozilla|google|Baidu`)

上面的正則就能識別大多數搜索引擎,使用方法:

if spiderReg.MatchString(r.Header.Get("User-Agent")) {
    // 對搜索引擎作響應
}

如果要想要從UserAgent 里分析出更多的信息,可借助一些庫來解析,如下面:

import "github.com/mssola/user_agent"

ua = user_agent.UserAgent{}
ua.Parse("Mozilla/5.0 (compatible; Googlebot/2.1;+http://www.google.com/bot.html)")

fmt.Printf("%v\n", ua.Bot())      // => true
name, version = ua.Browser()
fmt.Printf("%v\n", name)          // => Googlebot
fmt.Printf("%v\n", version)       // => 2.1

識別真假

UserAgent 字符串可以在 http 請求時設置,任何一個客戶端都可以偽造成一個搜索引擎去訪問你的網站。可以通過下面兩個步驟去識別真正的搜索引擎。

在 *nix 系統下使用 host 命令,使用方法如下面兩個示例:

$ host 207.46.13.178
178.13.46.207.in-addr.arpa domain name pointer msnbot-207-46-13-178.search.msn.com.
$ host msnbot-207-46-13-178.search.msn.com
msnbot-207-46-13-178.search.msn.com has address 207.46.13.178
$ host 203.208.60.24
24.60.208.203.in-addr.arpa domain name pointer crawl-203-208-60-24.googlebot.com.
$ host crawl-203-208-60-24.googlebot.com
crawl-203-208-60-24.googlebot.com has address 203.208.60.24

解釋一下上面的過程,首先通過來訪 IP 作DNS反向查詢,得到相關域名,再把得到的域名再做一次查詢,得到 IP,與原來的IP 相同才是比較靠譜的搜索引擎。

Go 語言里的 net 包可以實現這樣的查詢:

names, err := net.LookupAddr(ip)
addrs, err := net.LookupHost(name)

通過這種方式建立一個IP白名單,就可以屏蔽掉一些來路不明的蜘蛛。

看完了這篇文章,相信你對如何從UserAgent識別搜索引擎并判斷真假蜘蛛有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏东县| 藁城市| 隆昌县| 深泽县| 灵山县| 凌海市| 偏关县| 山阳县| 合阳县| 海口市| 大安市| 长兴县| 霍城县| 喀喇沁旗| 奉新县| 宣化县| 大新县| 河津市| 枝江市| 秦皇岛市| 涪陵区| 灯塔市| 黑河市| 红安县| 新宁县| 梧州市| 定安县| 阜宁县| 定陶县| 洛阳市| 禹州市| 开化县| 宁武县| 清涧县| 儋州市| 诸城市| 祁门县| 阿坝| 恩平市| 巴林左旗| 澄迈县|