【问题标题】:Ideas for a cookie crawler?饼干爬虫的想法?
【发布时间】:2014-02-17 07:39:26
【问题描述】:

我正在寻找 PHP/javascript/等。爬虫(机器人)会检查给定的网站集并(这是重要的部分)检查该网站在用户浏览器中设置了哪些 cookie!

我什至不知道是否可以做这样的事情,因为我知道爬虫可以检查网站的内容,甚至爬虫可以在用户访问网站时存储 cookie,但他真的可以从一个网站?

所以我的问题是:根据定义,这难道不是不可能的吗?可以做这样的事情吗?基本上检查网站在用户浏览器中设置了哪些 cookie,例如将它们存储在变量中。

【问题讨论】:

  • 你基本上是想破解一个用户/网站并获取他们的 cookie,使用 javascript 你只会得到你自己的 cookie

标签: javascript php cookies curl web-crawler


【解决方案1】:
<?php

$sites = array(
"www.google.com",
"www.w3schools.com",
"www.sapo.pt");

foreach ($sites as $site)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://$site");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/$site");
curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/$site");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($ch);
curl_close($ch);
} 
?>

这将为在 /tmp/ 文件夹中抓取的每个网站创建 cookie

-rw-r--r--  1 apache apache       430 Jan 26 20:21 www.google.com
-rw-r--r--  1 apache apache       291 Jan 26 20:22 www.sapo.pt
-rw-r--r--  1 apache apache       225 Jan 26 20:21 www.w3schools.com

【讨论】:

  • 好的,谢谢,这很好用。只是认为这不吃由javascript设置的cookie吗?有什么方法可以让这个 javascript 感知?
  • 不,不是,curl 不支持 javascript :(
【解决方案2】:

网站(通常)不关心用户代理是用户控制的浏览器还是机器人。两者都可以读取请求用户代理存储 cookie 的 HTTP 响应标头。

当网站有条件地设置 cookie(因为您必须触发条件)或使用 JavaScript(当您需要让机器人知道 JavaScript 时)时,就会出现复杂情况。

【讨论】:

    猜你喜欢
    • 2019-11-07
    • 1970-01-01
    • 2012-08-08
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多