基於PHPQuery的PHP通用採集類
鳥欲高飛先振翅,人求上進先讀書。以下是小編爲大家搜索整理的基於PHPQuery的PHP通用採集類,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
一、採集類源碼
代碼如下:
/**
*通用列表採集類
*版本V1.3
*作者:JAE
*/
require_once '../phpQuery/phpQuery/';
class QueryList{
private $pageURL;
private $regArr = array();
public $jsonArr = array();
private $regRange;
private $html;
/************************************************
* 參數: 頁面地址 選擇器數組 塊選擇器
* 【選擇器數組】說明:格式array("名稱"=>array("選擇器","類型"),.......)
* 【類型】說明:值 "text" ,"html" ,"屬性"
*【塊選擇器】:指 先按照規則 選出 幾個大塊 ,然後再分別再在塊裏面 進行相關的選擇
*************************************************/
function QueryList($pageURL,$regArr=array(),$regRange='')
{
$this->pageURL = $pageURL;
//爲了能獲取https://
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$this->pageURL);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$this->html = curl_exec($ch);
curl_close($ch);
if(!empty($regArr))
{
$this->regArr = $regArr;
$this->regRange = $regRange;
$this->getList();
}
}
function setQuery($regArr,$regRange='')
{
$this->jsonArr=array();
$this->regArr = $regArr;
$this->regRange = $regRange;
$this->getList();
}
private function getList()
{
$hobj = phpQuery::newDocumentHTML($this->html);
if(!empty($this->regRange))
{
$robj = pq($hobj)->find($this->regRange);
$i=0;
foreach($robj as $item)
{
while(list($key,$reg_value)=each($this->regArr))
{
$iobj = pq($item)->find($reg_value[0]);
switch($reg_value[1])
{
case 'text':
$this->jsonArr[$i][$key] = trim(pq($iobj)->text());
break;
case 'html':
$this->jsonArr[$i][$key] = trim(pq($iobj)->html());
break;
default:
$this->jsonArr[$i][$key] = pq($iobj)->attr($reg_value[1]);
break;
}
}
//重置數組指針
reset($this->regArr);
$i++;
}
}
else
{
while(list($key,$reg_value)=each($this->regArr))
{
$lobj = pq($hobj)->find($reg_value[0]);
$i=0;
foreach($lobj as $item)
{
switch($reg_value[1])
{
case 'text':
$this->jsonArr[$i++][$key] = trim(pq($item)->text());
break;
case 'html':
$this->jsonArr[$i++][$key] = trim(pq($item)->html());
break;
default:
$this->jsonArr[$i++][$key] = pq($item)->attr($reg_value[1]);
break;
}
}
}
}
}
function getJSON()
{
return json_encode($this->jsonArr);
}
}
二、使用例子
代碼如下:
require 'Query/';
//採集OSC的'代碼分享列表,標題 鏈接 作者
$url = "";
$reg = array("title"=>array("_title a:eq(0)","text"),"url"=>array("_title a:eq(0)","href"),"author"=>array("img","title"));
$rang = "_list li";
$hj = new QueryList($url,$reg,$rang);
$arr = $hj->jsonArr;
print_r($arr);
//如果還想採當前頁面右邊的 TOP40活躍貢獻者 圖像,得到JSON數據,可以這樣寫
$reg = array("portrait"=>array("_top img","src"));
$hj->setQuery($reg);
$json = $hj->getJSON();
echo $json . "
";
//採OSC內容頁內容
$url = "_186288_23816";
$reg = array("title"=>array("le h1","text"),"con"=>array("ent","html"));
$hj = new QueryList($url,$reg);
$arr = $hj->jsonArr;
print_r($arr);
相關文章
-
PHP學習:QRCode PHP生成二維碼類庫
在PHP語言中怎麼生成二維碼類庫呢?下面就和小編一起來看看吧!希望對大家有用,更多內容請關注應屆畢業生網! 使用類庫的方法123include("Common/");$QRCode=newQRCode();$categoryList=$QRCode->getUrl(); 以下是 -
php中使用jquery uploadify進行多圖片上傳實例
導語:jquery uploadify是一款Ajax風格的批量圖片上傳插件,在PHP中使用jquery uploadify很方便,請按照本文介紹的.方法和步驟,爲你的PHP程序增加jquery uploadify插件的批量上傳圖片功能。下面的是本站小編爲大家蒐集的在p -
php安裝xdebug/pear/phpunit圖文詳解
機動車駕駛員交通安全責任書爲加強單位內部XX交通安全工作,確保圓滿完成全年交通安全甲方責任事故零指標任務,控制和減少道路交通違法,特簽訂XX機動車駕駛員交通安全責任書:一、深入學習、嚴格遵守《中華人民共和國道路交 -
PHP開發:php與mysql三日通
在PHP的運用中最重要的就是數據庫部分的應用了,下面是本站小編精心爲大家整理的關於php與mysql的關係的文章,希望對大家有幫助,更多內容請關注應屆畢業生網! 一、PHP/MySQL簡介您應該聽說過開放源代碼軟件(OSS),除非最 -
關於apache mysql php 源碼編譯使用方法
linux 版本 : ubuntu 12.04今天完成了 php mysql 和apache 的配置主要是源碼配置,apache 主要是 2.4.2 版本php 主要是 5.3.11 版本mysql 主要是 5.1.62 版本前幾天試了好幾次,出現了軟件的源衝突,我放了兩個源在同一個so -
phpstorm配置Xdebug進行調試PHP教程
運行環境:PHPSTORM版本 : 8.0.1PHP版本 : 5.6.2xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_ps : php版本和xdebug版本一定要相對應1. PHP安裝xdebug擴展的配置,下面的配置僅供參考,路徑要換成自己的![xdebug]zend_extensio -
WinXP如何安裝Apache+MySQL+PHP環境
安裝步驟:在整個wamp環境搭建中,本質的工作如下:1,配置系統對php中dll文件能默認處於調用狀態。在windos下,對dll文件系統默認處於調用狀態的,有兩種採用的方式。第一種是:把需要調用dll文件複製到C:windows system32(如果是W -
php與php MySQL之間的關係
爸爸,你是最棒的!爸爸,請再擁抱我一次!爸爸,我討厭說教,告訴我怎樣才能變成富翁!爸爸,這是我們最珍貴的默契和回憶!爸爸,你在我心裏最最偉大!敬愛的爸爸,祝福您歲歲愉快,年年如意。父愛可以犧牲一切,包括自己的生命。爸爸是需 -
Linux+Apache+Mysql+PHP優化技巧
2015年10月2日東方的陽光照耀着我,我迅速起牀、洗漱、吃早餐,然後揹着沉重的書包走出家門。街上汽車很多,組成一條五彩的帶子,喇叭聲、叫賣聲和說話聲融合在一起,讓人想迅速脫離。我走向東方,被陽光沐浴的感覺很舒適。很多 -
jquery+php實現搜索框自動提示
百度上有個很使用的功能,就是用戶在搜索的時候會自動提示相關搜索條件以供選擇,非常人性化的設計,我們如何將此功能放到自己的項目中呢,經過一番研究,終於實現了此功能,分享給大家。今天突然想給本站做個搜索頁面,這樣用戶可