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 相关文章推荐
PHP4实际应用经验篇(7)
Oct 09 PHP
PHP新手上路(二)
Oct 09 PHP
实用函数7
Nov 08 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
PHP查询快递信息的方法
Mar 07 PHP
typecho插件编写教程(五):核心代码
May 28 PHP
PHP使用ODBC连接数据库的方法
Jul 18 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
PHP数据库操作二:memcache用法分析
Aug 16 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 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与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
PHP+JS三级菜单联动菜单实现方法
2016/02/24 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
python中的字典使用分享
2016/07/31 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
python脚本开机自启的实现方法
2019/06/28 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
RIP版本1跟版本2的区别
2013/12/30 面试题
教师通用专业自荐书范文
2014/02/11 职场文书
法制宣传日活动总结
2014/04/29 职场文书
四风问题查摆材料
2014/08/25 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
Python爬虫基础初探selenium
2021/05/31 Python