【问题标题】:Detecting a crawl (Search Engine's visit) using PHP使用 PHP 检测爬网(搜索引擎的访问)
【发布时间】:2012-06-01 16:28:50
【问题描述】:

当搜索引擎访问网页时,get_browser() 的作用和$_SERVER['HTTP_USER_AGENT'] 的返回是什么?

另外,当搜索引擎抓取网页时,PHP 提供的其他可能证据是什么?

【问题讨论】:

  • 为什么重要?如果您向他们提供不同的内容,则您违反了他们的服务条款并有被禁止的风险。
  • @JohnConde,不打算应用它...只是好奇...
  • 在问题完全重复之前,谁能告诉我get_browser() 返回什么?
  • @TabrezAhmed - 归根结底,它是电子脉冲进入你的机器。我是/已经/将与其他人一起假装是一个 IE 浏览器。你将无法区分。网络爬虫可能很好奇。

标签: php seo search-engine user-agent


【解决方案1】:
  • get_browser() 函数试图确定浏览器的功能(在数组中),但由于non standard user-agents,所以不要太依赖它;相反,对于一个严肃的应用程序,构建你自己的。

  • $_SERVER["HTTP_USER_AGENT"]是一个“描述”用户浏览器的长字符串,可以作为上述函数的第一个参数(可选); 提示:使用这个来发现用户的浏览器,而不是 get_browser() 本身!还要为 missing 用户代理做好准备!此字符串的示例如下:
    Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418 (KHTML, like Gecko) Safari/417.9.3

  • follows the rules 将根据存储在您网站根目录中的 robots.txt 的信息访问您的网页的搜索引擎或机器人或蜘蛛或爬虫。 如果没有 robots.txt,蜘蛛可以抓取整个网站,只要它在您的网页中找到链接;如果你有这个文件,你可以编程告诉蜘蛛 what 去搜索; 注意:此规则仅适用于“好”蜘蛛,而不适用于 bad ones

【讨论】:

  • robots.txt 只是一个提示,还有站点地图。
【解决方案2】:

get_browser() & $_SERVER['HTTP_USER_AGENT'] 将返回Useragents,它应该是这样的:

谷歌:

  • Mozilla/5.0(兼容;Googlebot/2.​​1;+http://www.google.com/bot.html)
  • Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7 (compatible; Googlebot -Mobile/2.1;+http://www.google.com/bot.html)
  • Googlebot-Image/1.0

必应:

  • Mozilla/5.0(兼容;bingbot/2.​​0;+http://www.bing.com/bingbot.htm)
  • Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b
  • msnbot/2.​​0b (+http://search.msn.com/msnbot.htm)
  • msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)

雅虎:

-> 要完全控制(和限制)抓取,请勿使用 robots.txt,请使用 .htaccesshttp.conf规则。 (好的爬虫在 robots.txt 中有一半时间不会对你的禁止规则发表意见)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 2021-01-22
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    相关资源
    最近更新 更多