⑴ 怎麼用phpquery抓取網頁實時數據使用CI框架
phpquery和框架並無關系,我現在也是用CI的
先將pq引入進來
$content = file_get_content('https://personalbank.cib.com.cn/pers/main/pubinfo/ifxQuotationQuery.do');
phpQuery::newDocumentHTML($content);
$containers = pq("xxxx");就可以了,但你要抓取這個網站數據,他數據是js載入的,所以你只需要
$content = file_get_content('https://personalbank.cib.com.cn/pers/main/pubinfo/ifxQuotationQuery!list.do?_search=false&dataSet.nd=1440145968553&dataSet.rows=100&dataSet.page=1&dataSet.sidx=&dataSet.sord=asc');這個地址返回是json數據,你直接json_decode()就OK
⑵ 想通過PHP實現讀取txt文本每次刷新網頁隨機獲取5行數據並輸出
如果文件不是太大的話,可以這樣寫:
<?php
$arr=file('a.txt'); //文本文件,請修改合適的名字和位置
$n=count($arr);
for ($i=0;$i<5;$i++) echo $arr[rand(0,$n)]."<br>';
?>
⑶ php 怎麼POST獲取數據
方法1、最常見的方法是:$_post['fieldname'];
說明:只能接收content-type:
application/x-www-form-urlencoded提交的數據
解釋:也就是表單post過來的數據
方法2、file_get_contents("php://input");
說明:
允許讀取
post
的原始數據。
和
$http_raw_post_data
比起來,它給內存帶來的壓力較小,並且不需要任何特殊的
php.ini
設置。
php://input
不能用於
enctype="multipart/form-data"。
解釋:
對於未指定
content-type
的post數據,則可以使用file_get_contents(「php://input」);來獲取原始數據。
事實上,用php接收post的任何數據都可以使用本方法。而不用考慮content-type,包括二進制文件流也可以。
所以用方法二是最保險的方法
⑷ PHP怎樣抓取網頁代碼中動態顯示的數據
你是想抓別人網頁上ajax動態載入的數據吧?
1、要找到它的ajax載入的URL地址
2、利用PHP的file_get_contents($url)函數讀取那個url地址。
3、對抓取到的內容進行分析或正則過濾。
⑸ PHP獲取網站中的信息並存入資料庫
用PHP自帶函數就可以實現,首先要過去對方的網頁信息,用
file_get_contents();參數是對方的URL地址,這個函數返回是一個字元串你想要的東西就在這個字元串中了
接下來就可以針對這個字元串做處理了,說下思路,正如你這個問題想獲取到航班號起飛時間,在這個網頁中應該有很多相同的標簽元素,它們都有共同點,用
用正則表達式preg_match();或者是
preg_match_all();這兩個函數它們都返回一個數組,這個數組存的就是你要的航班號和起飛時間,那麼相同信息的數組就會出現了,然後在對這個數組進行分析找到你要的某個值或全部的值
獲取信息要用到的3個函數是:
file_get_contents();
preg_match();
preg_match_all();
⑹ 通過PHP 的 curl 如何抓取進港碼頭的數據
使用PHP的cURL庫可以簡單和有效地去抓網頁。你只需要運行一個腳本,然後分析一下你所抓取的網頁,然後就可以以程序的方式得到你想要的數據 了。無論是你想從從一個鏈接上取部分數據,或是取一個XML文件並把其導入資料庫,那怕就是簡單的獲取網頁內容,cURL 是一個功能強大的PHP庫。本文主要講述如果使用這個PHP庫。
//如果要轉載本文請註明出處,免的出現版權紛爭,我不喜歡看到那種轉載了我的作品卻不註明出處的人 Seven{See7di#Gmail.com}
啟用 cURL 設置
首先,我們得先要確定我們的PHP是否開啟了這個庫,你可以通過使用php_info()函數來得到這一信息。
<?php
phpinfo();
?>
如果你可以在網頁上看到下面的輸出,那麼表示cURL庫已被開啟。
如果你看到的話,那麼你需要設置你的PHP並開啟這個庫。如果你是在Windows平台下,那麼非常簡單,你需要改一改你的php.ini文件的設置,找到php_curl.dll,並取消前面的分號注釋就行了。如下所示:
//取消下在的注釋
extension=php_curl.dll
如果你是在Linux下面,那麼,你需要重新編譯你的PHP了,編輯時,你需要打開編譯參數——在configure命令上加上「–with-curl」 參數。
一個小示例
如果一切就緒,下面是一個小常式:
<?php
// 初始化一個 cURL 對象
$curl = curl_init();
// 設置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, 'http://cocre.com');
// 設置header
curl_setopt($curl, CURLOPT_HEADER, 1);
// 設置cURL 參數,要求結果保存到字元串中還是輸出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 運行cURL,請求網頁
$data = curl_exec($curl);
// 關閉URL請求
curl_close($curl);
// 顯示獲得的數據
var_mp($data);
?>
如何POST數據
上面是抓取網頁的代碼,下面則是向某個網頁POST數據。假設我們有一個處理表單的網址http://www.example.com/sendSMS.php,其可以接受兩個表單域,一個是電話號碼,一個是簡訊內容。
<?php
$phoneNumber = '13912345678';
$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, 'http://www.example.com/sendSMS.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
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, 'http://www.example.com');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$data = curl_exec();curl_close($ch);
?>
關於SSL和Cookie
關於SSL也就是HTTPS協議,你只需要把CURLOPT_URL連接中的http://變成https://就可以了。當然,還有一個參數叫CURLOPT_SSL_VERIFYHOST可以設置為驗證站點。
關於Cookie,你需要了解下面三個參數:
CURLOPT_COOKIE,在當面的會話中設置一個cookie
CURLOPT_COOKIEJAR,當會話結束的時候保存一個Cookie
CURLOPT_COOKIEFILE,Cookie的文件。
HTTP伺服器認證
最後,我們來看一看HTTP伺服器認證的情況。
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, '[username]:[password]')
$data = curl_exec();
curl_close($ch);
?>