使用CURL進行模擬登錄采集數據


 

<?php

$cookie_path = './'; //設置cookie保存路徑
//-----登錄要提交的表單數據---------------
$vars['username'] = '張三';
$vars['pwd'] = '123';
//-------------------------------------
$method_post = true;
//登錄提交的url地址(表單中的action的絕對地址)
$url = 'http://****.com/login';
//----------------------------
$ch = curl_init();
$params[CURLOPT_URL] = $url; //請求url地址
$params[CURLOPT_HEADER] = true; //是否返回響應頭信息
$params[CURLOPT_RETURNTRANSFER] = true; //是否將結果返回
$params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
$params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';

$postfields = '';
foreach ($vars as $key => $value){
$postfields .= urlencode($key) . '=' . urlencode($value) . '&';
}

$params[CURLOPT_POST] = true;
$params[CURLOPT_POSTFIELDS] = $postfields;

//判斷是否有cookie,有的話直接使用
if (isset($_COOKIE['cookie_jar']) && ($_COOKIE['cookie_jar'] || is_file($_COOKIE['cookie_jar'])))
{
$params[CURLOPT_COOKIEFILE] = $_COOKIE['cookie_jar']; //這里判斷cookie
}
else
{
$cookie_jar = tempnam($cookie_path, 'cookie'); //產生一個cookie文件
$params[CURLOPT_COOKIEJAR] = $cookie_jar; //寫入cookie信息
setcookie('cookie_jar', $cookie_jar); //保存cookie路徑
}
curl_setopt_array($ch, $params); //傳入curl參數
$content = curl_exec($ch); //執行
echo '';
echo $content; //輸出登錄結果
/*
//---------登錄成功后再次請求其他地址,如果有多個可以循環執行---------
echo '';
$nexturl = 'http://****.com/test';
$params[CURLOPT_URL] = $nexturl;
$params[CURLOPT_POSTFIELDS] = '';
curl_setopt_array($ch, $params); //傳入curl參數
$content = curl_exec($ch); //執行
echo $content; //輸出請求結果
//-------------------------------------------------
*/
curl_close($ch); //關閉連接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM