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 相关文章推荐
一个阿拉伯数字转中文数字的函数
Oct 09 PHP
PHP 函数语法介绍一
Jun 14 PHP
一步一步学习PHP(8) php 数组
Mar 05 PHP
解析Ubuntu下crontab命令的用法
Jun 24 PHP
CodeIgniter启用缓存和清除缓存的方法
Jun 12 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
Jun 12 PHP
smarty半小时快速上手入门教程
Oct 27 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
Feb 05 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
Apr 10 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 PHP
Jsonp劫持学习
Apr 01 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
认识并使用PHP超级全局变量
2010/01/26 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
详解js中==与===的区别
2017/01/08 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
wxPython实现画图板
2020/08/27 Python
win10从零安装配置pytorch全过程图文详解
2020/05/08 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
十岁生日家长答谢词
2014/01/17 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
学雷锋日活动总结
2015/02/06 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
js作用域及作用域链工作引擎
2022/07/07 Javascript