php抓取網頁和分析,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-hant/n/140890.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IRTR的頭像IRTR
上一篇 2024-10-04 00:24
下一篇 2024-10-04 00:24

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python七年級內容用法介紹

    本文將從多個方面對Python七年級內容進行詳細闡述。 一、安裝Python 要使用Python進行編程,首先需要在計算機上安裝Python。Python可以在官網上免費下載。下載…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • python爬取網頁並生成表格

    本文將從以下幾個方面詳細介紹如何使用Python爬取網頁數據並生成表格: 一、獲取網頁數據 獲取網頁數據的一般思路是通過HTTP請求獲取網頁內容,最常用的方式是使用Python庫r…

    編程 2025-04-28
  • 網頁防篡改的重要性和市場佔有率

    網頁防篡改對於保護網站安全和用戶利益至關重要,而市場上針對網頁防篡改的產品和服務也呈現出不斷增長的趨勢。 一、市場佔有率 據不完全統計,目前全球各類網頁防篡改產品和服務的市場規模已…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python獲取Flutter上內容的方法及操作

    本文將從以下幾個方面介紹Python如何獲取Flutter上的內容: 一、獲取Flutter應用數據 使用Flutter提供的Platform Channel API可以很容易地獲…

    編程 2025-04-28
  • Python少兒編程的學習內容

    Python被譽為是最適合新手入門的編程語言之一,它簡潔易懂,同時涵蓋了廣泛的編程知識。Python的少兒編程課程也因其易學性和實用性越來越受到家長和孩子們的歡迎。接下來我們將從多…

    編程 2025-04-28
  • Python編程實戰:用Python做網頁與HTML

    Python語言是一種被廣泛應用的高級編程語言,也是一種非常適合於開發網頁和處理HTML的語言。在本文中,我們將從多個方面介紹如何用Python來編寫網頁和處理HTML。 一、Py…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28

發表回復

登錄後才能評論