前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP 怎么使用 XPath 来采集页面数据内容

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

作者头像
沈唁
发布2018-12-19 14:45:43
1.9K0
发布2018-12-19 14:45:43
举报
文章被收录于专栏:沈唁志沈唁志

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

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

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

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

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

代码语言:javascript
复制
//script[@type='application/ld+json']/text()

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

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

具体代码是这样的:

代码语言:javascript
复制
$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的成长之路! 原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:PHP 怎么使用 XPath 来采集页面数据内容

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档