php爬虫检测
我正在尝试编写一个sitemap.php,它根据用户的不同而不同 我想将爬虫重定向到我的sitemap.xml,因为这将是最新的页面,并且将包含他们需要的所有信息,但是我希望我的普通读者在php页面上显示一个html站点地图 这一切都将从php标题中进行控制,我在web上发现,从外观上看应该可以工作,但事实并非如此。有人能帮我破解这个吗php爬虫检测,php,web-crawler,Php,Web Crawler,我正在尝试编写一个sitemap.php,它根据用户的不同而不同 我想将爬虫重定向到我的sitemap.xml,因为这将是最新的页面,并且将包含他们需要的所有信息,但是我希望我的普通读者在php页面上显示一个html站点地图 这一切都将从php标题中进行控制,我在web上发现,从外观上看应该可以工作,但事实并非如此。有人能帮我破解这个吗 function getIsCrawler($userAgent) { $crawlers = 'firefox|Google|msnbot|Rambl
function getIsCrawler($userAgent) {
$crawlers = 'firefox|Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|' .
'AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|' .
'GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby';
$isCrawler = (preg_match("/$crawlers/i", $userAgent) > 0);
return $isCrawler;
}
$iscrawler = getIsCrawler($_SERVER['HTTP_USER_AGENT']);
if ($isCrawler) {
header('Location: http://www.website.com/sitemap.xml');
exit;
} else {
echo "not crawler!";
}
它看起来很简单,但正如你所看到的,我已经将firefox添加到代理列表中,并且确信我没有被重定向
谢谢您的帮助:)您的代码有错误:
$crawler = getIsCrawler($_SERVER['HTTP_USER_AGENT']);
应该是
$isCrawler = getIsCrawler($_SERVER['HTTP_USER_AGENT']);
如果您在开发时注意到这些错误,您将更容易发现这些错误
另外,您可能希望在标题之后退出
警告:伪装可能会给搜索提供商带来麻烦。解释原因。