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 相关文章推荐
人大复印资料处理程序_输入篇
Oct 09 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
Jul 02 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
php权重计算方法代码分享
Jan 09 PHP
跟我学Laravel之安装Laravel
Oct 15 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
php简单日历函数
Oct 28 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
Jan 08 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
Apr 09 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性能测试工具xhprof的详解
2013/06/03 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
yii添删改查实例
2015/11/16 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
Jquery Uploadify上传带进度条的简单实例
2014/02/12 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
jQuery实现评论模块
2020/08/19 jQuery
python模仿网页版微信发送消息功能
2018/02/24 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
python scatter函数用法实例详解
2020/02/11 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
自动化专业本科毕业生求职信
2013/10/20 职场文书
xxx同志考察材料
2014/02/07 职场文书
校园学雷锋活动月总结
2014/03/09 职场文书
2014年业务工作总结
2014/11/17 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
教师节寄语2015
2015/03/23 职场文书
前台接待员岗位职责
2015/04/15 职场文书
2016年五一促销广告语
2016/01/28 职场文书