只从登录用户可以访问的页面中抓取HTML?

时间:2015-06-01 23:41:22

标签: php facebook web https

基本上我想从网页中获取一些只有登录用户才能看到的数据,即Facebook分析和网页分析。

如果我查询特定页面并尝试正常抓取它,它就无法正常工作。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

使用CURL和cookie会话远程登录页面

使用以下选项:

$url = 'https://somewhere.com';
$post['user'] = 'myuser';
$post['pass'] = 'mypass';
$ch = curl_init( );
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_COOKIESESSION, true );
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt' );
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt' );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);    
curl_setopt($ch, CURLOPT_POST, count( $post ) );
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( $post ) );
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64)     AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36');

echo $result = curl_exec($ch); // Outputs HTML response from url

*请注意,帖子名称与您尝试登录的网站不同。

答案 1 :(得分:0)

我已经成功使用了它。

$context = stream_context_create(array(
    'http' => array('header'  => "Authorization: Basic " . base64_encode("$username:$password"))
));
$data = file_get_contents($url, false, $context);