欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

如何带cookie抓取页面内容

程序员文章站 2022-06-07 15:26:08
...
假设,QQ空间某个人对我的QQ设置了权限,也就是只有我登录了才可以访问,我想用PHP在服务端QQ空间然后抓取。遇到一些问题:
用casperjs登录有验证码,没办法,只能使用PHP登录WebQQ,那么我要怎么利用登录WebQQ的cookie来进入QQ空间呢?
或者求其他思路,求高手困扰很久了。

最终实现带cookie抓取页面内容即可。

回复内容:

假设,QQ空间某个人对我的QQ设置了权限,也就是只有我登录了才可以访问,我想用PHP在服务端QQ空间然后抓取。遇到一些问题:
用casperjs登录有验证码,没办法,只能使用PHP登录WebQQ,那么我要怎么利用登录WebQQ的cookie来进入QQ空间呢?
或者求其他思路,求高手困扰很久了。

最终实现带cookie抓取页面内容即可。

cookies 不過是 request header 中的一項內容罷了,請求頁面的時候把之前保存的 cookies 一起發過去,沒什麼大不了的。

file_get_contents 也行,示例代碼如下

array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.example.com/', false, $context);
?>

然後 $http_response_header 里有返回的新 cookies,保存下來供以後調用就行了。

抓取頁面跟代理沒什麼兩樣,只不過目標呈現不同罷了。