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 相关文章推荐
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
Jul 18 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
Jun 26 PHP
PHP json_encode中文乱码问题的解决办法
Sep 09 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
Sep 10 PHP
PHP中创建图像并绘制文字的例子
Nov 19 PHP
PHP中文编码小技巧
Dec 25 PHP
PHP整合PayPal支付
Jun 11 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
PHP多进程编程实例详解
Jul 19 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
Jun 19 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动态实现表格跨行跨列实现代码
2012/11/06 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
Python简单基础小程序的实例代码
2019/04/28 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
python3 kubernetes api的使用示例
2021/01/12 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
HTML5 解析规则分析
2009/08/14 HTML / CSS
体育老师的教学自我评价分享
2013/11/19 职场文书
办公室文员自荐书
2014/02/03 职场文书
公开承诺书格式
2014/05/21 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS