如何带cookie抓取页面内容


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

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

casperjs php phantomjs

y.nln 10 years, 2 months ago

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

file_get_contents 也行,示例代碼如下


 <?php
// Create a stream
$opts = array(
  'http'=>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,保存下來供以後調用就行了。

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

巧克力脆皮猪蹄 answered 10 years, 2 months ago

Your Answer