導航:首頁 > 編程語言 > php抓取網頁內容軟體

php抓取網頁內容軟體

發布時間:2024-01-02 17:02:11

『壹』 使用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

『貳』 網頁需要登錄,怎樣抓取其內容

網站登錄/認證有多種方式,要抽取/提取需要登錄的網頁內容,需要實現有針對性的網頁抓取軟體模塊:
1,HTTPS
2,HTTP Digest
3,HTTP Basic
4,使用網頁Form
其中,前三種是通信協議層面的,如果使用PHP,Python,javascript, Java等語言編程,一般需要控制HTTP通信做相應的動作;而第四種是應用層面的,只需要模擬用戶填寫Form然後提交即可,相對容易一些。另外,還要考慮伺服器是否推送cookie以及會話控制等等,所以,要自己編程把所有的都實現了是一個很大的挑戰,但是,如果利用瀏覽器平台能力,這個就好解決了,例如,利用Firefox的安全管理器,網站認證都委託給Firefox,只需要編寫應用邏輯代碼即可。網頁抓取/數據抽取/信息提取軟體工具包MetaSeeker就是採用了這種方案,用統一的方法實現所有方式的認證,一種最簡單的操作方法:先訪問一次目標頁面,認證通過後安全信息都記錄在安全伺服器上,後續的抓取工作就像針對不需要認證的頁面一樣,當然,這個第一次認證操作可以用程序自動完成。

MetaSeeker工具包是免費使用的,下載地址: http://www.gooseeker.com

『叄』 軟體推薦丨GoldDataSpider —— 網頁數據抽取工具

GoldDataSpider 是用於抓取網頁和抽取數據的工具。其核心代碼是從金色數據抓取融合平台分離而來。

該項目提供抓取和抽取來自網頁數據,不僅可以抽取網頁內的內容,還能抽取URL、HTTP報頭、Cookie里的數據。

該項目定義了一種簡潔、靈活、敏捷的結構或者說是規則語法。極盡其所能將網頁內容、HTTP報頭、Cookie、甚至關聯其它網頁、其它網站數據,抽取出有意義有價值數據欄位,組成一條數據記錄。除此之外,還能內嵌http請求,以補充數據欄位,比如某些欄位需要向詞典提供翻譯這樣的欄位等等。

該項目還可支持從各種類型文檔抽取數據,比如html/xml/json/javascript/text等。

我們還提供了規則可視化配製,請下載採集數量不受限、爬蟲數量不受限、導出數據數量不受限的完全免費金色數據平台社區版 。以及詳盡的文檔

使用入門

首先,我們需要將依賴加入項目當中,如下:

1、對於maven項目

2、對於gradle項目

然後你將可以使用該依賴所提供的簡潔清晰的API,如下:

運行上面的測試,你將可以看類似下野鄭面的輸出:

當作Service或者API使用

你可以在項目中,可以當作調用服務和API使用。例如如下:

對於可視化配製,可以參考免費社區版文檔。以下就免費社區版做簡單介紹 ,詳情見官網!

免費社區版:

開源/免費

讓用戶更好理解和使用產品

我們針對數據採集免費,還開放和維護核心的開源代碼項目。讓用戶可以更好的使用、理解採集,用好採集。 讓用戶在各種場景應用金色數據採集帶來的便利,我們有信心讓客戶見到一個開放的數據平台,讓用戶放心/省心/省力。

自由/靈活

透出一股強大的採集核心

我們的採集器,將向用戶暴露一切目標數據,除了常規網頁內容,還有如URL、HTTP報頭、Cookie等。還提供了各種解析工具和函數,讓用戶不僅能得到網頁內容里的數據,還能得到URL、HTTP報頭、Cookie里隱藏的核心數據,還能稿租靈活做到智能防封。

分布式採集

私有雲,更靈活,更安全,更放心

可以根據自身需求,隨意部署採集器數量,7*24小時不間斷運行,採集後端集中靈活控制。可自由指揮數據在哪個採集器採集。可定義定時採集,無需人員值守。

數據可關聯可追蹤

恢復/重建數據內在與外在價值

可以讓每條數據隨著目標網站目鍵脊兆標內容更新(如商品價格)、而更新用戶應用表該條數據相關欄位內容。

非侵入式融合

融合從未如此現實和簡單

完全可以在不改變用戶應用表結構(增刪改表列),而將採集數據融入到應用表中。

自動化/一體化

無需人力操作,即抓即用

不只是採集可以自動化抓取,融合也提供了手動化和強大自動化功能。還將採集與融合操作無縫對接,可將目標數據抓一條融合一條,實時流向應用表,做到即抓即用!

點擊下方鏈接,獲取軟體下載地址↓↓↓

GoldDataSpider首頁、文檔和下載 - 網頁數據抽取工具 - 開源中國

『肆』 php獲取指定網頁內容

此類方法一共有三種

  1. 第一種方法

<?php

$c = curl_init();

$url = 'www.badcatxt.com';

curl_setopt($c, CURLOPT_URL, $url);

curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

$data = curl_exec($c);
curl_close($c);

$pos = strpos($data,'utf-8');

if($pos===false){$data = iconv("gbk","utf-8",$data);}

preg_match("/<title>(.*)</title>/i",$data, $title);

echo $title[1];

?>

第二種方法:使用file()函數

<?php

$lines_array = file('http://www.badcatxt.com/');

$lines_string = implode('', $lines_array);

$pos = strpos($lines_string,'utf-8');

if($pos===false){$lines_string = iconv("gbk","utf-8",$lines_string);}

eregi("<title>(.*)</title>", $lines_string, $title);

echo $title[1];

?>

第三種方法:使用file_get_contents

<?php

$content=file_get_contents("http://www.badcatxt.com/");

$pos = strpos($content,'utf-8');

if($pos===false){$content = iconv("gbk","utf-8",$content);}

$postb=strpos($content,'<title>')+7;

$poste=strpos($content,'</title>');

$length=$poste-$postb;

echo substr($content,$postb,$length);

?>

『伍』 PHP怎樣抓取網頁代碼中動態顯示的數據

你是想抓別人網頁上ajax動態載入的數據吧?

1、要找到它的ajax載入的URL地址

2、利用PHP的file_get_contents($url)函數讀取那個url地址。

3、對抓取到的內容進行分析或正則過濾。

『陸』 怎麼用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抓取網頁內容軟體相關的資料

熱點內容
excelword轉換成pdf 瀏覽:384
安卓10制空霸權怎麼打開 瀏覽:260
視唱練耳用什麼app好 瀏覽:587
有兩個項目要部署在雲伺服器上 瀏覽:930
信源編解碼器的作用 瀏覽:919
remove命令linux 瀏覽:599
php發送郵件鏈接 瀏覽:34
創維冰箱壓縮機 瀏覽:869
nginxopenssl交叉編譯 瀏覽:750
相機卡無法創建新文件夾 瀏覽:225
單片機照明控制系統程序代碼 瀏覽:10
服務編程一體化 瀏覽:471
tx小霸王伺服器是什麼意思 瀏覽:545
計算機編程工齡工資怎麼算 瀏覽:491
macandroid配置環境變數 瀏覽:854
做項目文件夾的圖標 瀏覽:327
數控車床車軸編程教程 瀏覽:728
怎麼解壓截圖軟體 瀏覽:885
演算法符號橢圓 瀏覽:174
網路螞蟻app是什麼 瀏覽:273