Ⅰ php,用CURL post登錄的時候,我需要把登錄後返回的cookie保存到資料庫裡面
可以。你可以先獲取一個cookies值去進行curl操作,或者在登錄成功後獲取其header頭信息。裡面有cookies
Ⅱ 使用PHP的cURL庫進行網頁抓取
使用模明仿PHP的cURL庫可以簡單和有效地去抓網頁 你只需要運行一個腳本 然後分析一下你所抓取的網頁 然後就可以以程序的方式得到你想要的數據了 無論是你想從從一個鏈接上取部分數據 或是取一個XML文件並把其導入資料庫 那怕就是簡單的獲取網頁內容 cURL 是一個功能強大的PHP庫 本文主要講述如果使用這個PHP庫
啟用 cURL 設置
首先 我們得先要確定我們的PHP是否開啟了這個庫 你可以通過使用php_info()函數來得到這一信息
﹤?phpphpinfo();?﹥
如果你可以在網頁上看到下面的輸出 那麼表示cURL庫已被開啟
如果你看到的話 那麼你需要設置你的PHP並開啟這個庫 如果你是在Windows平台下 那麼非常簡單 你需要改一改你的php ini文件的設置 找到php_curl dll 並取消前面的分號注釋就行了 如下所示
//取消下在的注釋extension=php_curl dll
如果你旦纖是在Linux下面 那麼 你需要重新編譯你的PHP了 編輯時 你需要打開編譯參數——在configure命令上加上 –with curl 參數
一個小示例
如果一切就緒 下面是一個小常式
﹤?php// 初始化一個 cURL 對象$curl = curl_init();
// 設置你需要抓取的URLcurl_setopt($curl CURLOPT_URL //cocre );
// 設置headercurl_setopt($curl CURLOPT_HEADER );
// 設置cURL 參數 要求結果保存到字元串中還是輸出到屏幕上槐鏈 curl_setopt($curl CURLOPT_RETURNTRANSFER );
// 運行cURL 請求網頁$data = curl_exec($curl);
// 關閉URL請求curl_close($curl);
// 顯示獲得的數據var_mp($data);
如何POST數據
上面是抓取網頁的代碼 下面則是向某個網頁POST數據 假設我們有一個處理表單的網址// example /sendSMS php 其可以接受兩個表單域 一個是電話號碼 一個是簡訊內容
﹤?php$phoneNumber = ;$message = This message was generated by curl and php ;$curlPost = pNUMBER= urlencode($phoneNumber) &MESSAGE= urlencode($message) &SUBMIT=Send ;$ch = curl_init();curl_setopt($ch CURLOPT_URL // example /sendSMS php );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_POST );curl_setopt($ch CURLOPT_POSTFIELDS $curlPost);$data = curl_exec();curl_close($ch);?﹥
從上面的程序我們可以看到 使用CURLOPT_POST設置HTTP協議的POST方法 而不是GET方法 然後以CURLOPT_POSTFIELDS設置POST的數據
關於代理伺服器
下面是一個如何使用代理伺服器的示例 請注意其中高亮的代碼 代碼很簡單 我就不用多說了
﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPPROXYTUNNEL );curl_setopt($ch CURLOPT_PROXY fakeproxy : );curl_setopt($ch CURLOPT_PROXYUSERPWD user:password );$data = curl_exec();curl_close($ch);?﹥ 關於SSL和Cookie
關於SSL也就是HTTPS協議 你只需要把CURLOPT_URL連接中的//變成//就可以了 當然 還有一個參數叫CURLOPT_SSL_VERIFYHOST可以設置為驗證站點
關於Cookie 你需要了解下面三個參數
CURLOPT_COOKIE 在當面的會話中設置一個cookie
CURLOPT_COOKIEJAR 當會話結束的時候保存一個Cookie
CURLOPT_COOKIEFILE Cookie的文件
HTTP伺服器認證
最後 我們來看一看HTTP伺服器認證的情況
﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPAUTH CURLAUTH_BASIC);curl_setopt(CURLOPT_USERPWD [username]:[password] )
$data = curl_exec();curl_close($ch);?﹥
關於其它更多的內容 請參看相關的cURL手冊 lishixin/Article/program/PHP/201311/21491
Ⅲ php如何帶cookies訪問需要登錄的網站
使用curl
CURLOPT_COOKIE 設定HTTP請求中"Cookie: "部分的內容。多個cookie用分號分隔,分號後帶一個空格(例如, "fruit=apple; colour=red")。
CURLOPT_COOKIEFILE 包含cookie數據的文件名,cookie文件的格式可以是Netscape格式,或者只是純HTTP頭部信息存入文件。
CURLOPT_COOKIEJAR 連接結束後保存cookie信息的文件。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // 請求的地址
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiesfile); // 連接結束後保存cookie信息的文件
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiesfile); // 請求時發送的cookie信息文件
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_close($ch);