curl 採集五個步驟:php
1.curl_init()初始化curl
2.curl_setopt()設置傳輸數據和參數
3.curl_exec()執行傳輸並獲取返回數據
4.curl_errono()返回錯誤碼
5.curl_close()關閉curljson
get 方式:cookie
$curl = curl_init(); $url='http://www.baidu.com'; //設置請求url curl_setopt($curl, CURLOPT_URL,$url ); //是否將頭文件輸出 curl_setopt($curl, CURLOPT_HRADER,TRUE ); // 設置cURL 參數,要求結果保存到字符串中仍是輸出到屏幕上。 curl_setopt($curl, CURLOPT_RETURNTRANSFER,TRUE ); // 運行cURL,請求網頁 $data = curl_exec($curl); // 關閉URL請求 curl_close($curl);
post方式:curl
$cookie_file = dirname(__FILE__) . '/cookie.txt'; $url = 'http://manage.wxpro.loc/admin/login'; $get_url = 'http://manage.wxpro.loc/'; $post_data = array('username'=>'username','password'=>'password'); //初始化一個curl對象 $curl = curl_init(); //設置你須要抓取的 url curl_setopt($curl,CURLOPT_URL,$url); //設置crul參數,要求結果保存到字符串中仍是輸出到屏幕上 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true ); //post數據 curl_setopt($curl,CURLOPT_POST,1); //post變量 curl_setopt($curl,CURLOPT_POSTFIELDS,$post_data); //存儲cookie curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file); //運行curl,請求網頁 $data = (array)json_decode(curl_exec($curl)); //關閉url請求 curl_close($curl); if($data['error'] ==0){ //帶着上面獲得的COOKIE獲取須要登陸後才能查看的頁面內容 $ch = curl_init($get_url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); $contents = curl_exec($ch); curl_close($ch); var_dump($contents); }
curl_setopt 參數解釋:post
1.CURLOPT_URL 須要獲取的 URL 地址,也能夠在curl_init() 初始化會話的時候。url
2.CURLOPT_HEADER TRUE
啓用時會將頭文件的信息做爲數據流輸出。FALSE 不會輸出
spa
3.CURLOPT_RETURNTRANSFER TRUE
將curl_exec()獲取的信息以字符串返回,而不是直接輸出。false 直接輸出 .net
4.CURLOPT_COOKIEJAR 調用curl_close後,保存 cookie信息的條件code
5.CURLOPT_COOKIEFILE 包含 cookie 數據的文件名,cookie 文件的格式能夠是 Netscape 格式,或者只是純 HTTP 頭部風格,存入文件。若是文件名是空的,不會加載 cookie,但 cookie 的處理仍舊啓用。對象