0

最近我正在根据我的登录帐户curlstackoverflow.com抓取推荐的问题列表。

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

但是,正如我注意到的那样,浏览器发送的Cookie字段中的某些键,例如__utmaand __utmb,会定期更改,因此我必须相应地更新脚本中的 cookie 值,否则,我将无法根据我的帐户信息。

就我而言,这个必要的更新确实很麻烦。

我的困惑是:1,为什么cookie字段(由浏览器发送)经常变化?这背后的原因是什么?2、有没有办法让CURL表现得像浏览器一样,这样它就可以像浏览器一样适应cookie?

4

1 回答 1

0

1 - cookie 由服务器“设置”,并且客户端仅在它们与设置时相同的服务器+路径等匹配时才将它们发回。服务器可以很好地一遍又一遍地将cookie设置为新值,然后浏览器(或curl)当然需要发回正确的内容。

2 - 只要cookie是用HTTP设置的(参见http-cookies的概述),但如果cookie是由例如javascript设置的,那么curl不会模仿浏览器,因为curl不运行任何这样的程序而浏览器可以。

于 2013-10-05T21:27:46.337 回答