新闻动态

良好的口碑是企业发展的动力

PHP实现检测网站发布的文章是否被收录

发布时间:2023-08-12 08:01:03 点击量:246
宿迁网站建设

 

在PHP中,我们可以使用一些方法来检测一个网站发布的文章是否被搜索引擎收录。下面是一个可以实现此功能的示例代码:

 

```php

// 从网站后台获取的文章链接列表

$articleUrls = array(

'https://example.com/article1'

 

'https://example.com/article2'

 

'https://example.com/article3'

 

// ...

);

 

// 检测文章是否被收录的函数

function checkIndexing($url) {

$robotTxtUrl = 'https://example.com/robots.txt'; // 网站的robots.txt文件地址

$searchEngineUserAgent = 'Googlebot'; // 搜索引擎的User-Agent

 

// 发送请求检查robots.txt文件

$headers = get_headers($robotTxtUrl);

$isBlockedByRobot = false;

if ($headers && strpos($headers[0]

'200') !== false) {

$robotTxtContent = file_get_contents($robotTxtUrl);

 

if (strpos($robotTxtContent

'Disallow:') !== false) {

// 检查是否被robots.txt禁止抓取

$disallowedPaths = array();

$lines = explode("\n"

$robotTxtContent);

foreach ($lines as $line) {

if (strpos($line

'Disallow:') !== false) {

$disallowedPaths[] = trim(str_replace('Disallow:'

''

$line));

}

}

 

$parsedUrl = parse_url($url);

$path = $parsedUrl['path'];

 

foreach ($disallowedPaths as $disallowedPath) {

if ($disallowedPath == '/') {

$isBlockedByRobot = true;

break;

} elseif (strpos($path

$disallowedPath) !== false) {

$isBlockedByRobot = true;

break;

}

}

}

}

 

// 如果被robots.txt禁止抓取,则文章肯定未被收录

if ($isBlockedByRobot) {

return 'Not indexed (Blocked by robots.txt)';

}

 

// 发送请求检查搜索引擎是否收录

$searchEngineUrl = 'https://www.google.com/search?q=site:' . urlencode($url);

$searchEngineContent = file_get_contents($searchEngineUrl);

 

// 查找在搜索引擎页面中是否存在该URL,即证明被收录

if (strpos($searchEngineContent

$url) !== false) {

return 'Indexed';

} else {

return 'Not indexed';

}

}

 

// 循环检测每个文章的收录情况

foreach ($articleUrls as $url) {

echo 'URL: ' . $url . ' -> ' . checkIndexing($url) . '
';

}

```

 

上述代码中,我们使用`checkIndexing`函数实现了检测一个文章是否被搜索引擎收录的功能。该函数首先检查网站的robots.txt文件,如果robots.txt中禁止了抓取该文章链接,则返回`Not indexed (Blocked by robots.txt)`,否则继续检查搜索引擎是否收录了该文章的URL。我们以谷歌搜索为例,通过向谷歌搜索`site:URL`的方式来检查是否存在该文章链接。如果搜索结果页面中存在该URL,则返回`Indexed`,否则返回`Not indexed`。

 

我们从后台获取文章链接列表后,通过循环调用`checkIndexing`函数来检测每个文章的收录情况。*,我们可以输出每个文章的URL和收录情况。

 

需要注意的是,这只是一种简单的方法来检测文章是否被收录,由于搜索引擎的工作机制复杂且不断变化,可能存在一些限制和不确定性。因此,这个方法并不能保证百分之百准确地判断文章的收录情况。同时,可能还需要根据不同的搜索引擎和实际需求,进行相应的修改和调整。

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:dm@cn86.cn进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。本站原创内容未经允许不得转载。