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获取Google AJAX Search API 数据的代码
Mar 12 PHP
深入理解PHP原理之异常机制
Aug 21 PHP
PHP中的函数嵌套层数限制分析
Jun 13 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
Jun 25 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
PHP将进程作为守护进程的方法
Mar 19 PHP
php简单判断两个字符串是否相等的方法
Jul 13 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
nginx下安装php7+php5
Jul 31 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
Sep 28 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 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 Class 文章
2007/04/04 PHP
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
php设计模式 Factory(工厂模式)
2011/06/26 PHP
新手学习PHP的一些基础知识分享
2011/07/27 PHP
Laravel5框架添加自定义辅助函数的方法
2018/08/01 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
Javascript----文件操作
2007/01/18 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
利用jQuery解析获取JSON数据
2017/04/08 jQuery
原生js简单实现放大镜特效
2017/05/16 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
解析Python中的二进制位运算符
2015/05/13 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
python中函数默认值使用注意点详解
2016/06/01 Python
windows下ipython的安装与使用详解
2016/10/20 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
天逸系统(武汉)有限公司Java笔试题
2015/12/29 面试题
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
大学生毕业求职的自我评价
2013/09/29 职场文书
小学生打架检讨书
2014/01/26 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
特岗教师个人总结
2015/02/10 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
话题作文之生命的旋律
2019/12/17 职场文书