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实现采集程序原理和简单示例代码
Mar 18 PHP
PHP提取中文首字母
Apr 09 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
May 28 PHP
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
php中的curl使用入门教程和常见用法实例
Apr 10 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
PHP重置数组为连续数字索引的几种方式总结
Mar 12 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 PHP
PHP设计模式之策略模式原理与用法实例分析
Apr 04 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 PHP
PHP基于openssl实现非对称加密代码实例
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学习之 循环结构实现代码
2011/06/09 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
jquery文字上下滚动的实现方法
2013/03/22 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
python自动裁剪图像代码分享
2017/11/25 Python
用python实现百度翻译的示例代码
2018/03/09 Python
使用requests库制作Python爬虫
2018/03/25 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
Python3.6简单反射操作示例
2018/06/14 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
python开发之anaconda以及win7下安装gensim的方法
2019/07/05 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
.NET面试10题
2014/02/24 面试题
怎样声明一个匿名的内部类
2016/06/01 面试题
经典大学生求职信范文
2014/01/06 职场文书
发展部经理职责规定
2014/02/22 职场文书
Python Django ORM连表正反操作技巧
2021/06/13 Python
MySQL的索引你了解吗
2022/03/13 MySQL