phpQuery采集網(wǎng)頁(yè)實(shí)現(xiàn)代碼實(shí)例
前言
平時(shí)開(kāi)發(fā)中可能遇到一個(gè)問(wèn)題。采集網(wǎng)頁(yè),小偷程序等等。各種花式秀正則的話(huà),雖然能體現(xiàn)出geek,但是我覺(jué)得做事卻不夠優(yōu)雅。采集到的網(wǎng)頁(yè)說(shuō)白了也是DOM,jQuery各種優(yōu)雅地獲取節(jié)點(diǎn)。幸好,有這個(gè)類(lèi)庫(kù),幫我們解決了這個(gè),那就是phpQuery.
為什么使用phpQuery
phpQuery是基于php5新添加的DOMDocument。而DOMDocument則是專(zhuān)門(mén)用來(lái)處理html/xml。它提供了強(qiáng)大的xpath選擇器及其他很多html/xml操作函數(shù),使得處理html/xml起來(lái)非常方便。
尤其對(duì)于新手,看到一堆”不知所云”的字符評(píng)湊在一起,有種腦袋都要炸了的感覺(jué)。如果要分離的對(duì)象沒(méi)有太明顯的特征,正則寫(xiě)起來(lái)更是麻煩。
學(xué)習(xí)成本低,jQuery是PHP程序員的標(biāo)配,那么懂jQuery的話(huà),是可以無(wú)縫銜接的,學(xué)習(xí)成本幾乎為0。選擇器,節(jié)點(diǎn),節(jié)點(diǎn)信息,over
下載地址
https://code.google.com/archive/p/phpquery/downloads(或者自行百度phpQuery)
實(shí)驗(yàn)
既然開(kāi)始了,那么就做個(gè)實(shí)驗(yàn),比如我們要獲取SF的所有標(biāo)簽名稱(chēng)https://segmentfault.com/tags,審查元素,得到部分標(biāo)簽屬性。<a class="tag" data-original-title="負(fù)載均衡">負(fù)載均衡</a>
Demo
<?php
require("phpQuery.php");//導(dǎo)入phpQuery庫(kù)
$html = phpQuery::newDocumentFile("https://segmentfault.com/tags");
$hrefList = pq(".tag"); //獲取標(biāo)簽為a的所有對(duì)象$(".tag")
foreach ($hrefList as $href) {
echo $href->getAttribute("data-original-title"),"<br>";
}結(jié)果

總結(jié)
0.網(wǎng)頁(yè)采集真特么無(wú)腦暴力,成功繞過(guò)惡心的正則
1.寫(xiě)法參照jQuery
2.體會(huì)Dom的思想
3.此類(lèi)庫(kù)并非萬(wàn)金油,更適合網(wǎng)頁(yè)采集
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- php+jQuery ajax實(shí)現(xiàn)的實(shí)時(shí)刷新顯示數(shù)據(jù)功能示例
- jquery+ajax實(shí)現(xiàn)上傳圖片并顯示上傳進(jìn)度功能【附php后臺(tái)接收】
- PHP結(jié)合jquery ajax實(shí)現(xiàn)上傳多張圖片,并限制圖片大小操作示例
- php使用QueryList輕松采集js動(dòng)態(tài)渲染頁(yè)面方法
- PHP中使用jQuery+Ajax實(shí)現(xiàn)分頁(yè)查詢(xún)多功能操作(示例講解)
- 使用PHP+MySql+Ajax+jQuery實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)功能示例
- php+jQuery實(shí)現(xiàn)的三級(jí)導(dǎo)航欄下拉菜單顯示效果
相關(guān)文章
PHP中經(jīng)緯度坐標(biāo)相關(guān)計(jì)算方法小結(jié)
這篇文章主要為大家詳細(xì)介紹了PHP中經(jīng)緯度坐標(biāo)相關(guān)計(jì)算方法的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04
thinkphp5使用bootstrapvalidator進(jìn)行異步驗(yàn)證郵箱的示例
這篇文章主要介紹了thinkphp5使用bootstrapvalidator進(jìn)行異步驗(yàn)證郵箱的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
php 的加密函數(shù) md5,crypt,base64_encode 等使用介紹
php 在做注冊(cè)、登錄或是url 傳遞參數(shù)時(shí)都會(huì)用到 字符變量的加密,下面我們就來(lái)簡(jiǎn)單的介紹下:php 自帶的加密函數(shù)2012-04-04
PHP頁(yè)面跳轉(zhuǎn)操作實(shí)例分析(header方法)
這篇文章主要介紹了PHP頁(yè)面跳轉(zhuǎn)操作,結(jié)合實(shí)例形式對(duì)比分析了HTML跳轉(zhuǎn)與php使用header方法跳轉(zhuǎn)的相關(guān)操作技巧與注意事項(xiàng),并給出了一個(gè)跳轉(zhuǎn)的封裝函數(shù)供大家參考,需要的朋友可以參考下2016-09-09
php使用QueryList輕松采集js動(dòng)態(tài)渲染頁(yè)面方法
這篇文章給大家分享了php使用QueryList輕松采集js動(dòng)態(tài)渲染頁(yè)面的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友學(xué)習(xí)下。2018-09-09
POSIX 風(fēng)格和兼容 Perl 風(fēng)格兩種正則表達(dá)式主要函數(shù)的類(lèi)比(preg_match, preg_replace,
POSIX 風(fēng)格和兼容 Perl 風(fēng)格兩種正則表達(dá)式主要函數(shù)的類(lèi)比(preg_match, preg_replace, ereg, ereg_replace) ,需要的朋友可以參考下。2010-10-10
php+ajax無(wú)刷新上傳圖片的實(shí)現(xiàn)方法
這篇文章主要介紹了php+ajax無(wú)刷新上傳圖片的實(shí)現(xiàn)方法,涉及php結(jié)合ajax進(jìn)行文件傳輸操作相關(guān)技巧,需要的朋友可以參考下2016-12-12

