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 相关文章推荐
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
PHP连接局域网MYSQL数据库的简单实例
Aug 26 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
php实现检查文章是否被百度收录
Jan 27 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
浅析Yii2集成富文本编辑器redactor实例教程
Apr 25 PHP
php时间计算相关问题小结
May 09 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
Oct 29 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
利用Laravel生成Gravatar头像地址的优雅方法
Dec 30 PHP
PHP中如何使用Redis接管文件存储Session详解
Nov 28 PHP
php使用自带dom扩展进行元素匹配的原理解析
May 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
一个程序下载的管理程序(二)
2006/10/09 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
PHP防止跨域提交表单
2013/11/01 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
js闭包实例汇总
2014/11/09 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
Python迭代用法实例教程
2014/09/08 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
Python 递归函数详解及实例
2016/12/27 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
Python使用修饰器进行异常日志记录操作示例
2019/03/19 Python
python安装scipy的方法步骤
2019/06/26 Python
python运用sklearn实现KNN分类算法
2019/10/16 Python
Python猜数字算法题详解
2020/03/01 Python
python实现图像拼接
2020/03/05 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
vue常用指令代码实例总结
2020/03/16 Python
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
出国留学经济担保书
2014/04/01 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
安全承诺书格式范本
2015/04/28 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
Java基础之this关键字的使用
2021/06/30 Java/Android