91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何從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

云梦县| 石河子市| 滁州市| 丰顺县| 彭州市| 修文县| 安塞县| 衡东县| 大姚县| 安仁县| 东城区| 万山特区| 桐柏县| 介休市| 津市市| 牟定县| 乌兰察布市| 旬邑县| 泰和县| 东源县| 精河县| 新平| 佳木斯市| 自治县| 台北市| 山西省| 澎湖县| 印江| 丰台区| 呈贡县| 江津市| 莲花县| 莆田市| 高淳县| 富川| 德钦县| 徐闻县| 准格尔旗| 正宁县| 高唐县| 太仆寺旗|