【问题标题】:Goutte, how can the site see i am a robot?Goutte,网站怎么能看到我是机器人?
【发布时间】:2013-01-17 06:06:01
【问题描述】:

不管我使用的是 Firefox 还是 GoogleBot,网站仍将我视为机器人。

我正在尝试使用 Goutte 创建一个爬虫。该网站有一个针对爬虫的阻止系统,但我不知道如何避免它。这是我当前的代码:

require_once 'includes/goutte.phar';
use Goutte\Client;
$client = new Client();
$client->setHeader('User-Agent', "Googlebot");
$crawler = $client->request('GET', 'http://www.example.com');
echo $crawler->filter('')->text();

如您所见,我已经更改了用户代理,并且我已经通过爬取记录用户代理的本地文件测试了它是否正确更改。

网站仍然以某种方式将我识别为机器人。有什么想法吗?

【问题讨论】:

  • 您正在使用 UA 字符串“googlebot”并想知道它如何知道您是机器人?常识:零。
  • @Kolink - 这有点苛刻......不,你是对的:)
  • 我用什么都没关系。
  • 如果网站是智能的,它将使用白名单的方式来批准非机器人。如果您使用有效的 UA,但它仍然失败,它可能正在寻找另一条信息(例如 cookie)。听起来他们不想被抓取。
  • 确保您的客户端正在接受 cookie 并将它们与后续请求一起发回。除此之外,请联系该站点的管理员并询问。他们可能出于某种原因阻止机器人。

标签: php symfony web-crawler goutte


【解决方案1】:

用wireshark嗅探它并检查HTTP标头。

【讨论】:

    【解决方案2】:

    您是否尝试过使用 firefox 浏览器或仅使用其用户代理字符串? 如果您还没有使用 firefox 浏览器,那么请使用 firebug 插件(“网络”面板)或 Tamperdata 插件或 Wireshark 之类的工具来捕获导致成功响应的请求的详细信息。

    如果您使用 firefox 无法获得成功响应,则不太可能仅阻止机器人。

    如果您可以复制导致成功响应的请求。

    您也可以说“网站仍将我视为机器人”是什么意思——您得到的究竟是什么响应?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-16
      • 1970-01-01
      • 2017-09-08
      • 2012-08-14
      • 2021-05-10
      • 2021-12-16
      • 1970-01-01
      • 2020-04-18
      相关资源
      最近更新 更多