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 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
php中文本操作的类
Mar 17 PHP
php目录管理函数小结
Sep 10 PHP
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 PHP
MySQL的FIND_IN_SET函数使用方法分享
Mar 27 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
Linux中用PHP判断程序运行状态的2个方法
May 04 PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 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扩展
2013/06/13 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
jQuery之过滤元素操作小结
2013/11/30 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
js星星评分效果
2014/07/24 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
详解Django框架中用context来解析模板的方法
2015/07/20 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
教育专业个人求职信
2013/12/02 职场文书
机电工程学生自荐信范文
2013/12/07 职场文书
理工科学生的自我评价
2013/12/15 职场文书
八年级英语教学反思
2014/01/09 职场文书
人资专员岗位职责
2014/04/04 职场文书
就业协议书的作用
2014/04/11 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
餐饮服务食品安全责任书
2014/07/25 职场文书
联谊活动总结范文
2015/05/09 职场文书