gpt4 book ai didi

php爬虫检测

转载 作者:行者123 更新时间:2023-12-02 07:36:54 25 4
gpt4 key购买 nike

我正在尝试编写一个 sitemap.php,它的行为取决于谁正在查看。

我想将爬虫重定向到我的 sitemap.xml,因为这将是最新的页面,并将包含他们需要的所有信息,但我希望我的常规读者能够在 php 页面上显示 html 站点地图。

这一切都将在 php header 中进行控制,我发现 this code在网络上,从外观上看应该可以工作,但事实并非如此。谁能帮我解决这个问题吗?

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']);

如果您在开发时注意了通知,您将更容易发现这些错误。

此外,您可能希望在 header 之后退出

警告:隐藏内容可能会给您带来搜索提供商的麻烦。 This article解释原因。

关于php爬虫检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1176727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com