PHP curl函数模拟爬虫(操作cookie)
模拟cookie刷贴实例:
[code]<?php
$ch = curl_init();
//保存该次请求的cookie内容到文件cookie.txt
curl_setopt($ch, CURLOPT_COOKIEJAR, ”E:/cookie.txt”);
///要请求的链接,此链接请求后必须会写cookie到客户端(一般这样的链接均为登陆验证页面,可以用httpWatch抓取url和需要post的数据)
curl_setopt($ch, CURLOPT_URL,”http://www.mynit.net/login.php”);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,“xx”)//xx代表要post出去的数据
ob_start(); //开启浏览器缓存
curl_exec ($ch);
ob_end_clean(); //输出全部内容到浏览器
curl_close ($ch);
unset($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
//把原先产生的cookie文件,作为这次请求的cookie
curl_setopt($ch, CURLOPT_COOKIEFILE, ”E:/cookie.txt”);
//此链接为你要做的操作获得验证的链接,比如回复贴子处理页面
curl_setopt($ch, CURLOPT_URL,”http://www.mynit.net/post.php”);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ”xx”);//xx代表要post出去的数据
///执行操作,如刷贴,如果要猛刷的就循环1000次,不够可以加。
$buf2 = curl_exec ($ch);
curl_close ($ch);
echo $buf2;//返回结果
?>[/code]
[code]<?php
/*
#cookie用法
*/
$cookie_jar = tempnam(‘./tmp’,'cookie1′);
// login
$c=curl_init(‘http://www.nbchem.com/user/login.php?user=yourname&password=pwd&act=1′);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_jar);
curl_exec($c);
curl_close($c);
$c=”http://www.nbchem.com/vip/”;
$c=curl_init($c);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_jar);
$res=curl_exec($c);
curl_close($c);
echo $res;
?>[/code]