【问题标题】:How to handle secure cookies with web crawler [closed]如何使用网络爬虫处理安全 cookie [关闭]
【发布时间】:2011-10-28 16:56:12
【问题描述】:

我正在尝试自动化的使用 nginx 的 php 站点上的一些任务。我能够登录,但是由于我无法捕获一堆 cookie,对站点其余部分的后续请求失败。当我抓住响应标头时,它们就像不存在一样。我得到的只是PHPSESSIDSERVERID,我还缺少另外 5 个,尽管我可以在浏览器 cookie 中看到它们。我认为其中只有一个被用作持久身份验证令牌。我尝试在 PERL 中使用 JSoupjava URLlwp/mechanize。我应该可以得到它们,因为 burp 是用 Java 编写的。

http: REMOVED
POST /authenticate.php HTTP/1.1
Host: REMOVED
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.23)
Gecko/20110920 Firefox/3.6.23
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Proxy-Connection: keep-alive
Referer: REMOVED

Cookie: __utma=35782181.1596497020.1319574836.1319750878.1319821717.7; __utmv=35782181.|1=SignupDate=2011-OCT-24=1;uid="MTU5MTY4Ng==|1319649169|e4db70a9171742176a944f4fdc3613fd963b1b7e";username="dGVzdF9sb2dpbg==|1319649169|b82e24618b06d6b14d7ea64600c84a2d20c3de73"; defaultstat1=10; defaultstat3=10; SERVERID=ww4; PHPSESSID=53a7cd9acbb71ed7e7cc7be680e6c99c; __utmb=35782181.1.10.1319821717; __utmc=35782181; mode=full

Content-Type: application/x-www-form-urlencoded
Content-Length: 57
username=test_login&password=login123&btnLogin=Login
HTTP/1.0 302 Moved Temporarily
Server: nginx
Date: Fri, 28 Oct 2011 17:09:08 GMT
Content-Type: text/html
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: secret=99ba70c185973be0cd25e0f12dd1ea72; path=/
Location: REMOVED
X-Cache: MISS from REMOVED
Via: 1.0 REMOVED (http_scan/4.0.2.6.19)
Proxy-Connection: close

JSoup:

Connection.Response res = JSoup.connect(url)
     .data("username", username)
     .data("password", password)
     .method(Method.POST)
    .execute();

cookies[] = res.cookies();

cookies[] 只包含PHPSESSIDSERVERID

【问题讨论】:

  • 那么您的问题到底是什么?也许你可以提供一些代码?
  • 我如何检索其余的 cookie。它们出现在浏览器和标头拦截器中,但我无法通过脚本获取它们。
  • 您必须提供一些示例。你说的“剩下的……”是什么意思? “我的脚本”到底是什么?
  • 代码在家里。但我能够从标头中提取的唯一 cookie 是 PHPSESSID 和 SERVERID。

标签: java php perl cookies http-headers


【解决方案1】:

您示例中的 cookie 是 Google 的网络分析 cookie,它们是通过 Javascript 设置的。除非您编写的爬虫可以执行 Javascript,否则这些 cookie 将永远不会在爬虫中设置。

您在浏览器中看到的内容与解决此问题完全无关 - 抓取工具看到、获取和可以做到的才是最重要的。

【讨论】:

  • 好的。也许我会在 php 中尝试它。谢谢
猜你喜欢
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多