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 5.0 Pear安装方法
Dec 06 PHP
PHP高级对象构建 工厂模式的使用
Feb 05 PHP
PHP URL路由类实例
Nov 12 PHP
ThinkPHP中自定义错误页面和提示页面实例
Nov 22 PHP
PHP原生函数一定好吗?
Dec 08 PHP
ThinkPHP内置jsonRPC的缺陷分析
Dec 18 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
Laravel路由研究之domain解决多域名问题的方法示例
Apr 04 PHP
php常用日期时间函数实例小结
Jul 04 PHP
laravel 5.5 关闭token的3种实现方式
Oct 24 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的宝库目录--PEAR
2006/10/09 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
PHP的拦截器实例分析
2014/11/03 PHP
php判断当前操作系统类型
2015/10/28 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
JavaScript类库D
2010/10/24 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
jQuery实现的Div窗口震动特效
2014/06/09 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
Python发送http请求解析返回json的实例
2018/03/26 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
Python函数和模块的使用总结
2019/05/20 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
毕业生幼师求职自荐信
2013/10/01 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
计划生育证明书写要求
2014/09/17 职场文书
个人年终总结范文
2015/03/09 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python