PHP 怎么使用 XPath 來(lái)采集頁(yè)面數據內容
優(yōu)采云 發(fā)布時(shí)間: 2020-08-28 09:05PHP 怎么使用 XPath 來(lái)采集頁(yè)面數據內容
之前有說(shuō)過(guò)使用 Python 使用 XPath 去采集頁(yè)面數據內容,前段時(shí)間參與百度公測的一個(gè)號主頁(yè)詮釋插口,需要文章頁(yè)面改建的application/ld+json代碼
Python 具體的操作可以看一下之前的文章:Python爬蟲(chóng)之XPath句型和lxml庫的用法以及便捷的 Chrome 網(wǎng)頁(yè)解析工具:XPath Helper
我想過(guò)使用 QueryList 的框架去操作,但是由于他大小也算個(gè)框架,有點(diǎn)重,還是直接單文件吧
想到了之前寫(xiě) Python 爬蟲(chóng)時(shí)使用的 XPath,PHP 應該也是可以搞的吧
動(dòng)手就干,先找到對應的 XPath 規則,如下:
//script[@type='application/ld+json']/text()
script 節點(diǎn)下的 type 屬性,拿到它中間的文本,也剛好是我們須要的 JSON 數據
本來(lái)也是為了遞交百度便捷,所以直接做到給一個(gè)鏈接,然后代碼去懇求百度的插口就可以了
具體代碼是這樣的:
$html = file_get_contents('https://qq52o.me/2530.html');
$dom = new DOMDocument();
// 從一個(gè)字符串加載HTML
@$dom->loadHTML($html);
// 使該HTML規范化
$dom->normalize();
// 用DOMXpath加載DOM,用于查詢(xún)
$xpath = new DOMXPath($dom);
// 獲取對應的xpath數據
$hrefs = $xpath->query("//script[@type='application/ld+json']/text()");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$json = $href->nodeValue;
}
類(lèi)庫的用法自己可以看一下指南,使用 DOMXPath 的 query 方法,執行給定的 Xpath 規則,就醬紫~
針對百度熊掌號新插口懇求封裝代碼可以看一下 Github:sy-records/xzh-curl
總的來(lái)說(shuō),簡(jiǎn)單寫(xiě)一個(gè)頁(yè)面的采集還是很簡(jiǎn)單的
沈唁志,一個(gè)PHPer的成長(cháng)之路!任何個(gè)人或團體,未經(jīng)準許嚴禁轉載本文:《PHP 怎么使用 XPath 來(lái)采集頁(yè)面數據內容》,謝謝合作!