本文目錄一覽:
- 1、PHP怎樣抓取網頁代碼中動態(Ajax
- 2、php獲取網頁源碼內容有哪些辦法
- 3、PHP怎樣抓取網頁代碼中動態顯示的數據
- 4、使用PHP的cURL庫進行網頁抓取
- 5、php獲取網頁源碼內容有哪些辦法?
PHP怎樣抓取網頁代碼中動態(Ajax
你是想抓別人網頁上ajax動態載入的數據吧? 1、要找到它的ajax載入的URL地址 2、利用PHP的file_get_contents($url)函數讀取那個url地址。 3、對抓取到的內容進行分析或正則過濾。
php獲取網頁源碼內容有哪些辦法
可以參考以下幾種方法:
方法一: file_get_contents獲取
span style=”white-space:pre” /span$url=””;
span style=”white-space:pre” /span$fh= file_get_contents
(”);span style=”white-space:pre” /spanecho $fh;
方法二:使用fopen獲取網頁源代碼
span style=”white-space:pre” /span$url=””;
span style=”white-space:pre” /span$handle = fopen ($url, “rb”);
span style=”white-space:pre” /span$contents = “”;
span style=”white-space:pre” /spanwhile (!feof($handle)) {
span style=”white-space:pre” /span$contents .= fread($handle, 8192);
span style=”white-space:pre” /span}
span style=”white-space:pre” /spanfclose($handle);
span style=”white-space:pre” /spanecho $contents; //輸出獲取到得內容。
方法三:使用CURL獲取網頁源代碼
$url=””;
$UserAgent = ‘Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)’;
$curl = curl_init(); //創建一個新的CURL資源
curl_setopt($curl, CURLOPT_URL, $url); //設置URL和相應的選項
curl_setopt($curl, CURLOPT_HEADER, 0); //0表示不輸出Header,1表示輸出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //設定是否顯示頭信息,1顯示,0不顯示。//如果成功只將結果返回,不自動輸出任何內容。如果失敗返回FALSE
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, ”); //設置編碼格式,為空表示支持所有格式的編碼
//header中「Accept-Encoding: 」部分的內容,支持的編碼格式為:”identity”,”deflate”,”gzip”。
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
//設置這個選項為一個非零值(象 「Location: 「)的頭,伺服器會把它當做HTTP頭的一部分發送(注意這是遞歸的,PHP將發送形如 「Location: 「的頭)。
$data = curl_exec($curl);
echo $data;
//echo curl_errno($curl); //返回0時表示程序執行成功
curl_close($curl); //關閉cURL資源,並釋放系統資源
拓展資料
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。
用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
參考資料:PHP(超文本預處理器)-百度百科
PHP怎樣抓取網頁代碼中動態顯示的數據
PHP Simple HTML DOM或者phpQuery可以直接取得某些div中的內容,裡面有幾個例子專門針對於網頁抓取,調整好抓取頻次,捨去已經存在的數據,你可以參考下
;id=57class=2
使用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_dump($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手冊 lishixinzhi/Article/program/PHP/201311/21491
php獲取網頁源碼內容有哪些辦法?
1、使用file_get_contents獲得網頁源代碼。這個方法最常用,只需要兩行代碼即可,非常簡單方便。
2、使用fopen獲得網頁源代碼。這個方法用的人也不少,不過代碼有點多。
3、使用curl獲得網頁源代碼。使用curl獲得網頁源代碼的做法,往往是需要更高要求的人使用,例如當你需要在抓取網頁內容的同時,得到網頁header信息,還有ENCODING編碼的使,USERAGENT的使用等等。
所謂的網頁代碼,就是指在網頁製作過程中需要用到的一些特殊的”語言”,設計人員通過對這些”語言”進行組織編排製作出網頁,然後由瀏覽器對代碼進行”翻譯”後才是我們最終看到的效果。
製作網頁時常用的代碼有HTML,JavaScript,ASP,PHP,CGI等,其中超文本標記語言(標準通用標記語言下的一個應用、外語簡稱:HTML)是最基礎的網頁代碼。
原創文章,作者:IRTR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140890.html