使用Webcrawler/webscrawer(PHP/cURL)从网站获取cookie

使用Webcrawler/webscrawer(PHP/cURL)从网站获取cookie,php,cookies,web-crawler,php-curl,Php,Cookies,Web Crawler,Php Curl,我正在寻找一种方法,使用webcrawler从网站获取cookies。 我已经调查过这种情况,但我无法找到正确的方法来解决我的问题。我不是想从浏览器中获取cookies,我只是想从网站(任何网站)获取cookies 我希望有人能为我提供正确的解决方案/库! 提前谢谢你 亲切问候,, 迈克 编辑:我知道有一篇关于这个爬虫库的类似帖子。但是那篇文章已经过时了,是从2011年开始的。你可以通过php curl获得cookies,就像下面的脚本一样: <?php // The url t

我正在寻找一种方法,使用webcrawler从网站获取cookies。 我已经调查过这种情况,但我无法找到正确的方法来解决我的问题。我不是想从浏览器中获取cookies,我只是想从网站(任何网站)获取cookies

我希望有人能为我提供正确的解决方案/库! 提前谢谢你

亲切问候,, 迈克


编辑:我知道有一篇关于这个爬虫库的类似帖子。但是那篇文章已经过时了,是从2011年开始的。

你可以通过
php curl
获得cookies,就像下面的脚本一样:

<?php    

// The url to visit
$url = "https://www.google.com";

// Where to read cookies from and where to write them
$cookiesFile = "cookies.txt";

// Setup
$handle = curl_init();

curl_setopt( $handle, CURLOPT_URL,              $url );
curl_setopt( $handle, CURLOPT_RETURNTRANSFER,   true );
curl_setopt( $handle, CURLOPT_FOLLOWLOCATION,   true );

// Send cookies upon request and update them as per response
curl_setopt( $handle, CURLOPT_COOKIEFILE,       $cookiesFile );
curl_setopt( $handle, CURLOPT_COOKIEJAR,        $cookiesFile );

// Send request, get response
$response = curl_exec( $handle );

// Done with curl
curl_close( $handle );
Cookies以一种称为Netscape HTTP Cookies文件的特定格式存储,您可以查看以了解更多详细信息


当使用上述代码进行后续请求时,将从Cookie文件中读取先前接收到的Cookie,并随请求一起发送。当收到响应时,如果更新了cookie,则文件也会更新

这一点很重要,因为当您使用
php curl
访问同一网站的更多页面时,cookies存储保持一致。以会话cookie为例

上述代码存储在所访问页面的HTTP代码中


请注意,如果您只需要访问几个页面并获取cookie,这是一项简单的工作,只需使用开头显示的代码即可完成

它可以很容易地进行调整,甚至可以发出POST请求,以防在用户编译表单并提交表单时需要发送数据

如果你需要清理整个网站,事情可能就不那么琐碎了

最后要考虑到cookies可能是由JavaScript代码设置的

如果您需要访问一个交互式/JavaScript丰富的站点,模拟用户交互,然后检查cookies,那么
php curl
不适合这样做。
您需要编写一个无头浏览器的脚本

您只需解析Set Cookie响应头。不过,关于工具/库的问题是离题的。你自己挑一个,如果你有问题就回来。好的,谢谢你@Peter!我会调查一下的=)哇,谢谢你,这个很有魅力!而且,这个解释给了我很多清晰!为你欢呼()
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

.google.com TRUE    /   FALSE   1547833930  1P_JAR  2018-12-19-17
#HttpOnly_.google.com   TRUE    /   FALSE   1561053130  NID 150=OF8rpPblfIZCnga6aoN_Zo6_H9nv87Th7ggQZDijf76GJ11ZDkWXmQXEQ9cUOBC3z7vY_Ea0-NtGcK5wi8Qo3myU1nnNksfgTreuIHJRiI0-pEqN9v4H7YGafp6r0RFHFueUbJ9IWo3Bu83Sh3akVW6bXzY2I-rJvaIIGoW9Fdg