比方说:我想用curl来采集http://www.qq.com/a.asp页面的信息,但它有会员登陆验证(假如是cookies来验证的),只有登陆后才能看到,如果我的
帐号是 user123
密码是 456789而他的登陆验证页是http://www.qq.com/logincheck.asp原理是先登陆,再去采,可我怎么搞都是登陆不成功,真是没折,在百度里搜了一下,也试了,还是不成功,谁给我整个完整的代码,谢谢了,这几天都急得上火了...
汗.....
帐号是 user123
密码是 456789而他的登陆验证页是http://www.qq.com/logincheck.asp原理是先登陆,再去采,可我怎么搞都是登陆不成功,真是没折,在百度里搜了一下,也试了,还是不成功,谁给我整个完整的代码,谢谢了,这几天都急得上火了...
汗.....
我这不是说了吗?比方说,汗,你没看清楚呀.....就是说,我采集的页面需要会员登陆后才能看到,这样的话,直接去采就没法实现,所以要先模拟登陆,再去采集,模拟登陆可以用curl来实现,以下是我的具体代码:
function vlogin($url,$request){
$cookie_jar = tempnam('./tmp','cookie');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_NOBODY, false);
curl_exec ($ch);
curl_close($ch);
return $cookie_jar;
}
function get_content_by_cookie($url,$cookie_jar){
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url);
curl_setopt($ch2, CURLOPT_HEADER, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar);
$orders=curl_exec($ch2);
curl_close($ch2);
return $orders;
} $list_url='http://www.qq.com/a.asp ';
$login_url='http://www.qq.com/logincheck.asp ';
$post_data='username=1&password=2&questionid=0&answer=&submit=登录';
$cookie_file=vlogin($login_url,$post_data);
$tmp_curl=get_content_by_cookie($list_url,$cookie_file); echo $tmp_curl;我用具体的网址做个测试,上面只是“假设”的网址及帐号密码,帮我看看,代码对不对!!
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
最好要加上这几项