【问题标题】:How to detect Twitter crawler visitting my site如何检测访问我网站的 Twitter 爬虫
【发布时间】:2018-06-06 22:28:32
【问题描述】:

我经营一个 wordpress 博客,每篇文章都有 Google 的 AMP 版本。

每次我发布帖子时,我都会将标准版页面的链接而不是 AMP 分享到 twitter。

在某些时候,Twitter 移动应用开始采用 AMP 而不是标准的。现在,当关注者点击我在 Twitter 应用中分享的链接时,他们会看到 AMP 版本。

这是可能的,因为每个标准页面在源代码中都有一个 AMP 版本的链接,让搜索引擎知道有标准版本的 AMP。

但是,我的博客支持 AMP 的原因仅在于 Google。我不想让推特知道这件事。由于 AMP 非常有限,我无法通过 AMP 向访问者展示我的意图。

如果爬虫是 Twitter,我猜我可以去掉 PHP 中 AMP 的链接。

如果有办法在PHP中做到这一点,如何做到?

【问题讨论】:

标签: php wordpress twitter amp-html


【解决方案1】:

根据$_SERVER['HTTP_USER_AGENT'] 信息,如果用户代理字符串属于 Twitterbot,您可以采取不同的操作。通过以下条件,您可以更改网站的行为:

if (preg_match('/Twitterbot/i', $userAgent)) {
    // Do something for Twitterbot!
}

您也可以使用 PIWIK 团队的Universal Device Detection libraryBot Parser class

<?php

require_once 'vendor/autoload.php';

use DeviceDetector\Parser\Bot AS BotParser;

$botParser = new BotParser();

// examples
$userAgents = [
    'Twitterbot/1.0',
    'Mozilla/5.0 (compatible; Twitterbot/1.0)',
    'Mozilla/5.0 (Twitterbot/0.1)',
];

$botParser->setUserAgent($userAgents[0]);

$result = $botParser->parse();

if (!is_null($result)) {
    if ($result['producer']['name'] === 'Twitter') {
        // Do something for Twitterbot!
    }
}

【讨论】:

  • 不是客户端的用户代理吗?当用户已经获得 AMP 链接时,他们会来到 AMP 版本。我的目的是防止 twitter 服务器知道 AMP 版本的存在。
  • 机器人也有自己的代理info。当在 Twitter 上共享链接时,它的爬虫(用户代理:Twitterbot/1.0)将在您的文档中查找 元素。如果引用了有效的 AMP 文档,Twitter 移动客户端会将用户定向到您页面的该 AMP 版本info。根据用户代理字符串,您可以为 Twitter 爬虫提供不同的信息,从而删除 amp 链接。你可以告诉 Twitter 重新抓取你的文章页面以反映更新。
【解决方案2】:

Google AMP 是 Google 劫持互联网的尝试。 Google AMP 是某种“中间人攻击” Google AMP 是 google 创造的最愚蠢、最狡猾和最烦人的东西。 您应该尽可能禁用/避免/对抗 google AMP。 AMP 会以多种欺骗方式破坏您的网站并惹恼您的访问者。 AMP 通过隐藏 cmets 来破坏 WordPress 网站主题,显示隐藏的东西,如作者姓名。 Google AMP 充满了错误。 Google AMP 使移动数据使用量增加/翻倍,因为用户会在发现自己掉入陷阱后加载实际页面。 没有人喜欢 Google AMP。

if(searchResult.instanceOf(Google AMP)){
skip(searchResult);
}


if(SEO.option.equal("Google AMP")){
 skip(SEO.option);

 }

阅读更多: https://productforums.google.com/forum/m/?noredirect=true#!topic/webmasters/8ogdv04Cm-k

【讨论】:

  • 我完全同意你的看法。 Google 和 Facebook 通过创建 AMP 和即时文章之类的东西破坏了整个 Web 开发社区一直在构建的东西。但是,我坚持支持 AMP 这个博客。我不想破坏已经在互联网上的链接。
  • 但是你的问题会随着你的链接增加而累积,相信我他们是故意这样做的,所以你不能选择退出。
  • 我自己在代码中自定义了很多 AMP 插件。我不应该这样做。破碎的主题对我来说问题不大。我什至在上面放了adsense广告。但是,就像我说的那样,限制很烦人。
  • 这很有趣。
猜你喜欢
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-28
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
相关资源
最近更新 更多