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 解决utf-8和gb2312编码转换问题
Mar 18 PHP
php从右向左/从左向右截取字符串的实现方法
Nov 28 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
深入php var_dump()函数的详解
Jun 05 PHP
解析PHP正则提取或替换img标记属性
Jun 26 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
Aug 17 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 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连mysql和oracle数据库性能比较
2006/10/09 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
写自已的js类库需要的核心代码
2012/07/16 Javascript
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
总结Javascript中的隐式类型转换
2016/08/24 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python三级目录展示的实现方法
2016/09/28 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
Linux 修改Python命令的方法示例
2018/12/03 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
迪拜航空官方网站:flydubai
2017/04/20 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
大学生简历中个人的自我评价
2013/10/06 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
三行辞职书范文
2015/02/26 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
签证工作证明模板
2015/06/15 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
react国际化react-intl的使用
2021/05/06 Javascript
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript