[php]代码库
$ch = curl_init($url);
$cookiefile = tempnam("/tmp","cookies"); // 创建一个用于存放cookie信息的临时文件,也是最关键的一个
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); // 返回结果存放在变量中,而不是默认的直接输出
curl_setopt($ch,CURLOPT_HEADER,true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,120);
curl_setopt($ch,CURLOPT_REFERER,REFFER_URL);
$fields_post = array(
'username' => $user,
'subButton' => 'Submit',
'password' => $user,
'encoded' => 'true'
); // 根据抓包得到的POST或Get字段,填充这些相应的数据
$headers_login = array(
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0',
'Referer' => REFFER_URL
); // 设置HTTP请求头信息
$fields_string = '';
foreach($fields_post as $key => $value){
$fields_string .= $key . '=' . $value . '&';
}
$fields_string = rtrim($fields_string,'&');
curl_setopt($ch,CURLOPT_COOKIESESSION,true);
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookiefile); // 关闭连接时,将服务器端返回的cookie保存在以下文件中
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookiefile);
curl_setopt($ch,CURLOPT_USERAGENT,$headers_login['User-Agent']);
curl_setopt($ch,CURLOPT_POST,1); // 以POST方式提交
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
$result = curl_exec($ch); // 保存输出的页面到$result中