有没有办法确定对 ASP.Net 应用程序的 http 请求是从浏览器还是从机器人/爬虫发出的?我需要区分这两种请求。
谢谢!
不,没有。没有万无一失的证据可以确定请求的来源——所有 HTTP 标头都可以被欺骗。
一些爬虫(GoogleBot 等)会为自己做广告,但这并不意味着浏览者不能伪装成 GoogleBot。
最好的策略是寻找众所周知的机器人(通过User-Agent
标头,可能通过已知的 IP 地址)并假设它们是爬虫。
看看Request.Browser.Crawler,但这仅适用于某些爬虫。
嗯...如果机器人想被识别为机器人,是的。因为他可以很容易地模拟出他是一个网络浏览器。
Personnaly,我将使用此列表开始:http ://www.robotstxt.org/db.html