2009-11-03 74 views
-1

我正在构建一个web机器人登录到我的网站上的一些帐户,但其中一个网址正在从javascript发送cookie,而curl无法存储它们。任何建议?卷曲不存储饼干

+0

自己解析javascript的缺点,我没有看到有很多你可以做的事情。请记住,curl在PHP中运行,不会在返回的页面中插入JavaScript。这听起来像你已经进入了一个网站,无论是设计还是机会都不允许网络机器人访问。 – Tom 2009-11-03 18:08:51

回答

-1

curl不解析Javascript,因此cookies不会被设置。

+3

你的简单性打击了我。我知道,因为我在这里。如果可能,我要求提供解决方案。也许调用exec并从命令执行IE来存储cookie并抓取它们。如果有人以前做过这个,请回复。 – 2009-11-03 18:11:05

1

您可以使用您使用的任何语言解析JavaScript文件,并查找document.cookie语句。然后,您可以使用此数据以curl手动设置cookie。 (CURLOPT_COOKIE)

如果你希望这可以与许多网站一起工作,这并不是最好的主意,但是既然你声明你知道该网站,你需要加载它的可能性,我会对Javascript的外观有所了解。

1

如果你有你的手自由几个月的时间,你可以编译webkitits javascript engine和修改cookie的设置功能,使其出口的饼干stdout(然后用PHP的exec抓住他们)。祝你好运。考虑到你问这个问题与cURL的关系,我不认为这是相当你的胡同...

如果你绝望,我会去与克利的答案。您应该能够对JavaScript进行反向工程,并查看Web应用程序如何设置Cookie的逻辑。如果它使用XHR进行身份验证并返回登录结果,请查看浏览器发送和接收的内容(使用Firebug)。在document.cookie行上添加断点并观察正在设置的cookie(以及它们设置的是什么)。一旦您知道了身份验证背后的准确逻辑,就可以使用cURL执行必要的幕后请求,以便在网站上拦截会话。