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中用header图片地址 简单隐藏图片源地址
Apr 09 PHP
php短域名转换为实际域名函数
Jan 17 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
PHP+MySQL投票系统的设计和实现分享
Sep 23 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
使用PHPExcel操作Excel用法实例分析
Mar 26 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
php根据地址获取百度地图经纬度的实例方法
Sep 03 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
PHP dirname(__FILE__)原理及用法解析
Oct 28 PHP
PHP并发场景的三种解决方案代码实例
Feb 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
PHP4引用文件语句的对比
2006/10/09 PHP
php采集速度探究总结(原创)
2008/04/18 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
2013/04/24 PHP
Parse正式发布开源PHP SDK
2014/08/11 PHP
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
jquery.masonry瀑布流效果
2017/05/25 jQuery
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
分析python服务器拒绝服务攻击代码
2014/01/16 Python
Python三元运算实现方法
2015/01/12 Python
python看某个模块的版本方法
2018/10/16 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
日本无添加化妆品:HABA
2016/08/18 全球购物
酒店管理毕业生自荐信
2013/10/24 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
社区反邪教工作方案
2014/06/16 职场文书
师范类求职信
2014/06/21 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
交通安全教育主题班会
2015/08/12 职场文书
python执行js代码的方法
2021/05/13 Python