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读取msn上的用户信息类
Dec 05 PHP
使用php来实现网络服务
Sep 15 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
Feb 17 PHP
php curl的深入解析
Jun 02 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
php文件上传简单实现方法
Jan 24 PHP
php include类文件超时问题处理
Feb 06 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
Jun 06 PHP
PHP  Yii清理缓存的实现方法
Nov 10 PHP
php实现的中文分词类完整实例
Feb 06 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 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用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
2020/10/30 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
Python 条件判断的缩写方法
2008/09/06 Python
详解Python的Django框架中的templates设置
2015/05/11 Python
Ubuntu下安装PyV8
2016/03/13 Python
git进行版本控制心得详谈
2017/12/10 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
python制作简单五子棋游戏
2019/06/18 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
廉洁教育学习材料
2014/05/19 职场文书
疾病防治方案
2014/05/31 职场文书
2015年重阳节主持词
2015/07/04 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python