PHP抓取網頁-提取網頁meta鍵值對
一、前言
在使用php curl抓取網頁內容時,分析出來網頁內的meta資訊,一般情況下,只是會用到meta中的content-type或者charset、keywords、description。
二、實現
寫了一個函式,用來提出meta中的鍵值對,程式碼如下:
function getMetaOfWeb($html=NULL) { if(is_null($html)) { return NULL; } if(strlen($html)!=0) { $ret = array(); $metapattern = '/<meta[^>]*?>/is'; $kvpattern = '/([\w\-]+)=[\"\']?([^\s]+)["\']?/is'; preg_match_all($metapattern, $html, $matches); if(!empty($matches)) { $meta = $matches[0]; foreach ($meta as $key => $value) { $value = preg_replace('/<meta\s+/is', "", $value); $value = rtrim($value,'/>'); $value =trim($value); //替換;+空格 $repattern = '/;\s+/is'; $value = preg_replace($repattern, ';', $value); preg_match_all($kvpattern, $value, $kvmatches); if(!empty($kvmatches)) { $type = (int)count($kvmatches[0]); switch ($type) { case 1://meta裡面只有一條語句 <meta charset=UTF-8> $metakey = rtrim($kvmatches[1][0],"\"'"); $metakey = ltrim($metakey,"\"'"); $metavalue = rtrim($kvmatches[2][0],"\"'"); $metavalue = ltrim($metavalue,"\"'"); $ret[$metakey] = $metavalue; break; case 2://meta裡面是引數名稱/引數值的方式 $metakey = rtrim($kvmatches[2][0],"\"'"); $metakey = ltrim($metakey,"\"'"); $metavalue = rtrim($kvmatches[2][1],"\"'"); $metavalue = ltrim($metavalue,"\"'"); $ret[$metakey] = $metavalue; break; case 3://meta裡面;+空格<meta http-equiv=mobile-agent content="format=wml;url=http://m.qidian.com $metakey = rtrim($kvmatches[2][0],"\"'"); $metakey = ltrim($metakey,"\"'"); $tmp = rtrim($kvmatches[2][1],"\"'"); $tmp = ltrim($tmp,"\"'"); $tmp2 = rtrim($kvmatches[2][2],"\"'"); $tmp2 = ltrim($tmp2,"\"'"); $metavalue = $tmp.$tmp2; $ret[$metakey] = $metavalue; break; } } } return $ret; } return NULL; } }
相關推薦
PHP抓取網頁-提取網頁meta鍵值對
一、前言 在使用php curl抓取網頁內容時,分析出來網頁內的meta資訊,一般情況下,只是會用到meta中的content-type或者charset、keywords、description。 二、實現 寫了一個函式,用來提出meta中的鍵值對,程式碼如下: fun
php 中 使用foreach為陣列增加鍵值對
php 中的 foreach 在php中,使用foreach來遍歷陣列的頻率很高,並且其效能要高於 list() 和 each() 結合來遍歷陣列: 當遍歷二位陣列的第一層陣列,並要給第二位陣列增加一個新的鍵值對時。例如我有這樣的二維陣列結構 $a =
php抓取網頁內容,獲取網頁資料
php通過simple_html_dom實現抓取網頁內容,獲取核心網頁資料,將網頁資料寫入本地 xxx.json 檔案 其程式碼實現邏輯: 1. 引入simple_html_dom.php檔案 require_once 'simple_ht
PHP抓取網頁執行JS phantomjs
PHP抓取網頁,網頁內容是通過JS載入的,這時需要執行JS來載入內容。 需要用到phantomjs。下面是windows的安裝方法。 1.安裝phantomjs 下載完成解壓到E:\softw
PHP抓取網頁內容獲得網頁原始碼
1、 file_get_contents獲取 <span style="white-space:pre"> </span>$url="http://www.baidu.com/"; <span style="white-space:pre"&g
php抓取網頁內容彙總
①、使用php獲取網頁內容 http://hi.baidu.com/quqiufeng/blog/item/7e86fb3f40b598c67d1e7150.html header("Content-type: text/html; charset=utf-8")
使用Python中的HTMLParser、cookielib抓取和解析網頁、從HTML文件中提取連結、影象、文字、Cookies .
對搜尋引擎、檔案索引、文件轉換、資料檢索、站點備份或遷移等應用程式來說,經常用到對網頁(即HTML檔案)的解析處理。事實上,通過 Python語言提供的各種模組,我們無需藉助Web伺服器或者Web瀏覽器就能夠解析和處理HTML文件。本文上篇中,我們介紹了一個可以幫助簡化開啟
php抓取網頁內容
function curl_file_get_contents($durl){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $durl); curl_setopt($ch, CURLOPT_TIMEOUT,
【php網頁爬蟲】php抓取網頁資料
外掛介紹: PHP Simple HTML DOM解析類:Simple HTML DOM parser 幫我們很好地解決了使用 php html 解析 問題。可以通過這個php類來解析html文件,對其中的html元素進行操作 (PHP5+以上版本)。 使用方法: 1
php抓取圖片進行內容提取解析,文字性pdf進行內容文字提取解析
規則 服務 內容 利用 網站發布 百度 unicode 表格 返回 2018年7月7日18:52:17 php是用純算法,自己是提取圖片內容不是不行,可以但是優化起來很麻煩還得設計學習庫,去矯正數據的正確率 對於大多數項目來說,如果不是做ocr服務,就不必要做需求工具或者
網路爬蟲中Fiddler抓取PC端網頁資料包與手機端APP資料包
1 引言 在編寫網路爬蟲時,第一步(也是極為關鍵一步)就是對網路的請求(request)和回覆(response)進行分析,尋找其中的規律,然後才能通過網路爬蟲進行模擬。瀏覽器大多也自帶有除錯工具可以進行抓包分析,但是瀏覽器自帶的工具比較輕量,複雜的抓包並不支援。且有時候需要編寫手機APP爬
網頁資料抓取之讀取網頁資料
最近專案中需要用到各大網站的資料,這裡沒用爬蟲,用純java程式碼,無任何外掛,抓取一些自己需要的資料! 後續會記錄主要的幾個網站資料抓取,主要針對帶單個搜尋框的網站!下面是一個公用的讀取網頁資料操作
抓取並解析網頁資料(xml解析、html解析)
網頁有兩種格式,一種是xml另一種是html,目前似乎好像大部分都是html格式的,檢視網頁格式的方法是在瀏覽器中右鍵–>檢視原始碼或者直接F12即可。 一、XML解析 1)DOM解析 DOM(Document Object Mode)是
php抓取頁面的幾種方法詳解
close deb clas win exe _array error: fopen ini 一、 PHP抓取頁面的主要方法:1. file()函數 2. file_get_contents()函數 3. fopen()->fread()->fclose
PHP抓取頁面的幾種方式
我們在開發網路程式時,往往需要抓取非本地檔案,一般情況下都是利用php模擬瀏覽器的訪問,通過http請求訪問url地址, 然後得到html原始碼或者xml資料,得到資料我們不能直接輸出,往往需要對內容進行提取,然後再進行格式化,
PHP抓取頁面中a標籤的href屬性值以及a中間內容
$str = file_get_contents($zh_cn_url); $reg1='/<a href=\"(.*?)\".*?>(.*?)<\/a>/i';//匹配所有A標籤 preg_match_all($reg1,$str,$aarray); //這個$a
PHP抓取遠端圖片儲存到本地的實現方法
PHP抓取遠端圖片儲存到本地的實現方式<?php // Function: 獲取遠端圖片並把它儲存到本地 // //// 確定您有把檔案寫入本地伺服器的許可權 // //// 變數說明:// $url 是遠端圖片的完整URL地址,不能為空。// $filename 是
PHP抓取頁面內容
什麼叫抓取? 通過PHP程式碼來實現,把其它網頁的內容抓取到本地,抓取的時候需要聯網才可以1.通過file_get_contents()函式實現抓取。 前提:在php.ini中設定允許開啟一個網路的url地址。
php 抓取div內容
1. 取得指定網頁內的所有圖片:測試 開新視窗複製程式碼列印? <?php //取得指定位址的內容,並儲存至text $text=file_get_contents('http://andy.diimii.com/'); //取得所有img標籤,
java抓取資訊提取
protected Logger logger = LogManager.getLogger(this.getClass()); private static final String articleListBox = "lstBox",