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 相关文章推荐
推荐一篇入门级的Class文章
Mar 19 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
php获取客户端电脑屏幕参数的方法
Jan 09 PHP
php递归函数三种实现方法及如何实现数字累加
Aug 07 PHP
详解js异步文件加载器
Jan 24 PHP
PHP实现补齐关闭的HTML标签
Mar 22 PHP
PHP 无限级分类
May 04 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
php分享朋友圈的实现代码
Feb 18 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
Feb 25 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 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递归法读取目录及文件的方法
2015/01/30 PHP
js跑步算法的实现代码
2013/12/04 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
python 简易计算器程序,代码就几行
2009/08/29 Python
跟老齐学Python之dict()的操作方法
2014/09/24 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
详解django自定义中间件处理
2018/11/21 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
物业门卫岗位职责
2013/12/28 职场文书
学校节能减排方案
2014/06/13 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
文明社区申报材料
2014/08/21 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
房屋出售授权委托书
2014/10/12 职场文书
美术教师求职信范文
2015/03/20 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang
Oracle更换为MySQL遇到的问题及解决
2021/05/21 Oracle
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技
利用Python实现Picgo图床工具
2021/11/23 Python