curl 快速伪造登录抓取数据

很多时候为了抓取某些特殊页面的页面数据,特别是补充了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’;

发表评论

电子邮件地址不会被公开。 必填项已用*标注