使用CURL来处理像浏览器这样的所有cookie?

时间:2013-10-05 19:26:53

标签: http web-crawler session-cookies

最近,我使用curl根据我的签名帐户抓取stackoverflow.com推荐的问题列表。

目前,为了在HTTP请求中注册我的帐户信息,我将标题+ cookie(由我的浏览器显示)复制并粘贴到文件中,写了一个脚本,其中curl用于抓取数据

但是,正如我所注意到的,浏览器发送的Cookie字段中的某些键(如__utma__utmb)会定期更改,因此我必须更新我的Cookie值相应的脚本,否则,我将无法根据我的帐户信息获得结果。

这方面的必要更新确实非常麻烦。

我的困惑是: 1,为什么cookie字段(由浏览器发送)会定期更改?这背后的原因是什么? 2,有没有让CURL像浏览器一样运行,以便它能像浏览器一样调整cookie?

1 个答案:

答案 0 :(得分:0)

1 - 服务器对“cookie”进行“设置”,如果客户端匹配相同的服务器+路径等,则客户端只会将它们发回。服务器可以很好地将cookie一遍又一遍地设置为新值,然后浏览器(或curl)当然需要发回正确的内容。

2 - 只要使用HTTP设置cookie(参见http-cookies以获取概述),但如果cookie由例如javascript设置,则curl将不会模仿浏览器,因为curl不会在浏览器运行时运行任何此类程序。