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速度全攻略
Oct 09 PHP
PHP防注入安全代码
Apr 09 PHP
php escape URL编码
Dec 10 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
Sep 10 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 PHP
PHP实现合并discuz用户
Aug 05 PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP实现多图上传和单图上传功能
May 17 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
Sep 19 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 显示指定路径下的图片
2009/10/29 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
python根据日期返回星期几的方法
2015/07/06 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
python全栈知识点总结
2019/07/01 Python
python如何统计代码运行的时长
2019/07/24 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
中式餐厅创业计划书范文
2014/01/23 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
浅谈Node的内存泄露问题
2022/05/06 NodeJs
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers