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 相关文章推荐
mysql5详细安装教程
Jan 15 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
php设计模式 DAO(数据访问对象模式)
Jun 26 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
PHP之短标签开启设置
Jun 17 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
推荐几个开源的微信开发项目
Dec 28 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
Mar 27 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
Oct 27 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 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 CLI模式下的多进程应用分析
2013/06/03 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
理解Python中的With语句
2015/02/02 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
python opencv之SURF算法示例
2018/02/24 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
django中forms组件的使用与注意
2019/07/08 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
班级道德讲堂实施方案
2014/02/24 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
安全保卫工作竞聘材料
2014/08/25 职场文书
甜品店创业计划书
2014/09/21 职场文书
遗嘱格式范本
2015/08/07 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书