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 和 MySQL 基础教程(四)
Oct 09 PHP
在PHP中使用与Perl兼容的正则表达式
Nov 26 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
weiphp微信公众平台授权设置
Jan 04 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
PHP线程的内存回收问题
Jul 08 PHP
php-app开发接口加密详解
Apr 18 PHP
php实现根据身份证获取精准年龄
Feb 26 PHP
PHP中多字节字符串操作实例详解
Aug 23 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 is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
PHP源代码数组统计count分析
2011/08/02 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
IE无法设置短域名下Cookie
2010/09/23 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
简述jQuery Easyui一些用法
2017/08/01 jQuery
AngularJS日程表案例详解
2017/08/15 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
Python 详解基本语法_函数_返回值
2017/01/22 Python
python自定义异常实例详解
2017/07/11 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
django如何实现视图重定向
2019/07/24 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
特色冷饮店创业计划书
2014/01/28 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
五四青年节演讲稿
2014/05/26 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
劳动模范获奖感言
2015/07/31 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android