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 相关文章推荐
第十一节--重载
Nov 16 PHP
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
php daddslashes()和 saddslashes()有哪些区别分析
Oct 26 PHP
php ci框架验证码实例分析
Jun 26 PHP
PHP实现加强版加密解密类实例
Jul 29 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
php中上传文件的的解决方案
Sep 25 PHP
php生成word并下载代码实例
Mar 15 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
2009/06/29 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
构造函数+原型模式构造js自定义对象(最通用)
2014/05/12 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
React实现全选功能
2020/08/25 Javascript
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
Python实现优先级队列结构的方法详解
2016/06/02 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
python 识别图片中的文字信息方法
2018/05/10 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
英国著名的药妆网站:Escentual
2016/07/29 全球购物
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
"引用"与多态的关系
2013/02/01 面试题
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
2016公司年会主持词
2015/07/01 职场文书