phpQuery采集网页实现代码实例


Posted in PHP onApril 02, 2020

前言

  平时开发中可能遇到一个问题。采集网页,小偷程序等等。各种花式秀正则的话,虽然能体现出geek,但是我觉得做事却不够优雅。采集到的网页说白了也是DOM,jQuery各种优雅地获取节点。幸好,有这个类库,帮我们解决了这个,那就是phpQuery.

为什么使用phpQuery

phpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理html/xml。它提供了强大的xpath选择器及其他很多html/xml操作函数,使得处理html/xml起来非常方便。

尤其对于新手,看到一堆”不知所云”的字符评凑在一起,有种脑袋都要炸了的感觉。如果要分离的对象没有太明显的特征,正则写起来更是麻烦。

学习成本低,jQuery是PHP程序员的标配,那么懂jQuery的话,是可以无缝衔接的,学习成本几乎为0。选择器,节点,节点信息,over

下载地址

https://code.google.com/archive/p/phpquery/downloads(需要翻墙,或者自行百度phpQuery)

实验

  既然开始了,那么就做个实验,比如我们要获取SF的所有标签名称https://segmentfault.com/tags,审查元素,得到部分标签属性。<a class="tag" data-original-title="负载均衡">负载均衡</a>

Demo

<?php
  
  require("phpQuery.php");//导入phpQuery库
  $html   = phpQuery::newDocumentFile("https://segmentfault.com/tags");
  $hrefList = pq(".tag"); //获取标签为a的所有对象$(".tag")

  foreach ($hrefList as $href) {
    echo $href->getAttribute("data-original-title"),"<br>";
  }

结果

phpQuery采集网页实现代码实例

总结

0.网页采集真特么无脑暴力,成功绕过恶心的正则

1.写法参照jQuery

2.体会Dom的思想

3.此类库并非万金油,更适合网页采集

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP 编程请选择正确的文本编辑软件
Dec 21 PHP
PHP中的integer类型使用分析
Jul 27 PHP
PHP操作XML作为数据库的类
Dec 19 PHP
php日期转时间戳,指定日期转换成时间戳
Jul 17 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
php自动载入类用法实例分析
Jun 24 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 PHP
YII框架行为behaviors用法示例
Apr 26 PHP
laravel-admin 在列表页添加自定义按钮的例子
Sep 30 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 #PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 #PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 #PHP
TP5框架实现上传多张图片的方法分析
Mar 29 #PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 #PHP
php查看一个变量的占用内存的实例代码
Mar 29 #PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 #PHP
You might like
十天学会php之第八天
2006/10/09 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
html下载本地
2006/06/19 Javascript
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
JS实现放烟花效果
2020/03/10 Javascript
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
计算机专业学生的自我评价
2013/12/15 职场文书
写给女生的道歉信
2014/01/08 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
物业经理自我鉴定
2014/03/03 职场文书
2014全国两会心得体会
2014/03/17 职场文书
国窖1573广告词
2014/03/21 职场文书
学校交通安全责任书
2014/08/25 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
python中使用redis用法详解
2022/12/24 Redis