PHP 怎么使用 XPath 来采集页面数据内容

优采云 发布时间: 2020-08-28 09:05

  PHP 怎么使用 XPath 来采集页面数据内容

  

  之前有说过使用 Python 使用 XPath 去采集页面数据内容,前段时间参与百度公测的一个号主页诠释插口,需要文章页面改建的application/ld+json代码

  Python 具体的操作可以看一下之前的文章:Python爬虫之XPath句型和lxml库的用法以及便捷的 Chrome 网页解析工具:XPath Helper

  我想过使用 QueryList 的框架去操作,但是由于他大小也算个框架,有点重,还是直接单文件吧

  想到了之前写 Python 爬虫时使用的 XPath,PHP 应该也是可以搞的吧

  动手就干,先找到对应的 XPath 规则,如下:

  //script[@type='application/ld+json']/text()

  script 节点下的 type 属性,拿到它中间的文本,也刚好是我们须要的 JSON 数据

  本来也是为了递交百度便捷,所以直接做到给一个链接,然后代码去恳求百度的插口就可以了

  具体代码是这样的:

  $html = file_get_contents('https://qq52o.me/2530.html');

$dom = new DOMDocument();

// 从一个字符串加载HTML

@$dom->loadHTML($html);

// 使该HTML规范化

$dom->normalize();

// 用DOMXpath加载DOM,用于查询

$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;

}

  类库的用法自己可以看一下指南,使用 DOMXPath 的 query 方法,执行给定的 Xpath 规则,就酱紫~

  针对百度熊掌号新插口恳求封装代码可以看一下 Github:sy-records/xzh-curl

  总的来说,简单写一个页面的采集还是很简单的

  沈唁志,一个PHPer的成长之路!任何个人或团体,未经准许严禁转载本文:《PHP 怎么使用 XPath 来采集页面数据内容》,谢谢合作!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线