首页 > 解决方案 > 从浏览器中检索 cookie 将与 php curl 一起使用?

问题描述

我有一个简单的 php 应用程序,可以从网站获取价格,但它只有在我cookie从页面的 chrome 浏览器请求中复制时才有效。我可以简单地复制/粘贴这一cookie行,CURLOPT_HTTPHEADER它会永远工作吗?

此外,当我设置代理时,它也能完美运行。我不知道为什么。谁能解释我?

谢谢

标签: phpcurlcookiesweb-scrapinghttp-headers

解决方案


如果您有 cookie 的内容(从浏览器复制),如果您使用 curl 和 php,如果 cookie 很少更改和/或如果您有一个简单的脚本,您可以在脚本中嵌入 cookie与示例中的 CURLOPT_COOKIE 一样。

curl_setopt ($ch, CURLOPT_COOKIE, <COOKIE_STRING_CONTENT>);

这是最简单的方法,但需要注意的是每次 cookie 更改时,您都需要更新脚本。

如果您需要更具延展性、更易于更新和维护的东西,您可以使用这 2 个指令 CURLOPT_COOKIEFILE 和 CURLOPT_COOKIEJAR,如下所示,

$cookieFile = "name_of_the_cookie_file_on_the_server"
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieFile);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieFile);

这样做是指示脚本加载 cookie 文件,并将更改存储在同一个文件(如果有的话)上,这样如果您需要更新 cookie 的内容,您只需要更新 de cookie 文件。

curl 有很多不错的选择,不要忘记阅读http://php.net/manual/en/function.curl-setopt.php上的文档


推荐阅读