很多时候为了抓取某些特殊页面的页面数据,特别是补充了cookie校验或者处理逻辑的。一些登录后才可进行访问的页面数据。往往需要从登录到后面的操作一步一步实现,再对数据进行特殊处理.
下面提供一种相对临时,快捷的方式。
用chrome访问需要访问的页面,如果需要登录,登录即可。
将报文头部分全部复制,然后配到curl的头中。此时的session标志是已登录状态。或者已被服务器标志为正常用户了。
$ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, $url ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); $header[]='Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'; // $header[]='Accept-Encoding:gzip,deflate,sdch'; $header[]='Accept-Language:zh-CN,zh;q=0.8'; $header[]='Cache-Control:max-age=0'; $header[]='Connection:keep-alive'; $header[]='Cookie:_xxxxxxxxxx'; $header[]='Host:xxxxxxxxxxxxxxxx'; $header[]='Referer:http://xxxxxxxxxxxx'; $header[]='User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36'; curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $contents = curl_exec ( $ch ); curl_close ( $ch );
这句是压缩,需要隐藏。
// $header[]=’Accept-Encoding:gzip,deflate,sdch’;