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中的phpinfo()函数
Jun 06 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
php采用curl实现伪造IP来源的方法
Nov 21 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
thinkPHP查询方式小结
Jan 09 PHP
PHP命名空间和自动加载类
Apr 03 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
php如何把表单内容提交到数据库
Jul 08 PHP
PHP针对redis常用操作实例详解
Aug 17 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
星际争霸秘籍
2020/03/04 星际争霸
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
javascript IFrame 强制刷新代码
2009/07/23 Javascript
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
通过shell+python实现企业微信预警
2019/03/07 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
虚拟机下载python是否需要联网
2020/07/27 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
英国家电直销:Appliances Direct
2016/09/22 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
平面设计师工作职责范文
2013/12/03 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
自荐信模板大全
2015/03/27 职场文书
实习单位鉴定意见
2015/06/04 职场文书
感恩教师节主题班会
2015/08/12 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
关于MySQL中的 like操作符详情
2021/11/17 MySQL
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电