phpQuery采集网页实现代码实例
前言
平时开发中可能遇到一个问题。采集网页,小偷程序等等。各种花式秀正则的话,虽然能体现出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>"; }
结果
总结
0.网页采集真特么无脑暴力,成功绕过恶心的正则
1.写法参照jQuery
2.体会Dom的思想
3.此类库并非万金油,更适合网页采集
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
php+jQuery实现的三级导航栏下拉菜单显示效果
本文实例讲述了php+jQuery实现的三级导航栏下拉菜单显示效果.分享给大家供大家参考,具体如下: 首先看看效果图: 1.数据配置文件 db.php <?php return array( array( 'one' => '关于我们', 'two' => array( array( 'three_tit' => '公司介绍', 'three_cont' => array( '企业概况', '组织架构', '发展历程', '企业文化', '服务理念' ) ), array(
-
php+jQuery ajax实现的实时刷新显示数据功能示例
本文实例讲述了php+jQuery ajax实现的实时刷新显示数据功能.分享给大家供大家参考,具体如下: 创建数据表:demo -- -- 表的结构 `demo` -- CREATE TABLE IF NOT EXISTS `demo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CH
-
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
1.首先做主页面Ajax_pag.php 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Ajax做分页</title> <script src="bootstrap/js/jquery-1.11.2.min.js"></script> <script src="Ajax_
-
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
本文实例讲述了PHP结合jquery ajax实现上传多张图片,并限制图片大小操作.分享给大家供大家参考,具体如下: php用jquery-ajax上传多张图片限制图片大小 /** * 上传图片,默认大小限制为3M * @param String $fileInputName * @param number $size */ public function processUpload($fileInputName,$size=3145728) { $result = array('status'
-
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
本文实例讲述了jquery+ajax实现上传图片并显示上传进度功能.分享给大家供大家参考,具体如下: jquery上传文件用的formdata,上传进度条需要添加xhr的onprogress html代码如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatib
-
php使用QueryList轻松采集js动态渲染页面方法
QueryList使用jQuery的方式来做采集,拥有丰富的插件.下面来演示QueryList使用PhantomJS插件抓取JS动态创建的页面内容. 一.安装 使用Composer安装: 1.安装QueryList composer require jaeger/querylist GitHub: https://github.com/jae-jae/QueryList 2.安装PhantomJS插件 composer require jaeger/querylist-phantomjs Git
-
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下拉跟着变化,市级下拉变化时区下拉跟着变化. 使用chinastates表查询 Ajax加载数据 1.这是chinastates表 2.做一个简单php:Ajax_eg.php <!DOCTYPE html> <html> <head> <meta charset=&q
-
phpQuery采集网页实现代码实例
前言 平时开发中可能遇到一个问题.采集网页,小偷程序等等.各种花式秀正则的话,虽然能体现出geek,但是我觉得做事却不够优雅.采集到的网页说白了也是DOM,jQuery各种优雅地获取节点.幸好,有这个类库,帮我们解决了这个,那就是phpQuery. 为什么使用phpQuery phpQuery是基于php5新添加的DOMDocument.而DOMDocument则是专门用来处理html/xml.它提供了强大的xpath选择器及其他很多html/xml操作函数,使得处理html/xml起来非常
-
javascript 获取网页标题代码实例
复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="
-
Python3简单爬虫抓取网页图片代码实例
现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2), 所以我用Python3的语法写了一个简单抓取网页图片的实例,希望能够帮助到大家,并希望大家批评指正. import urllib.request import re import os import urllib #根据给定的网址来获取网页详细信息,得到的html就是网页的源代码 def getHtml(url): page = urllib.request.urlope
-
使用phpQuery采集网页的方法
phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息.更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样处理页面内容,获取你想要的页面信息.采集头条先看一实例,现在我要采集新浪网国内新闻的头条,代码如下: 复制代码 代码如下: include 'phpQuery/phpQuery.php'; phpQuery::newDocumentFile('http://www.jb51.net'); echo pq
-
Python爬虫抓取指定网页图片代码实例
想要爬取指定网页中的图片主要需要以下三个步骤: (1)指定网站链接,抓取该网站的源代码(如果使用google浏览器就是按下鼠标右键 -> Inspect-> Elements 中的 html 内容) (2)根据你要抓取的内容设置正则表达式以匹配要抓取的内容 (3)设置循环列表,重复抓取和保存内容 以下介绍了两种方法实现抓取指定网页中图片 (1)方法一:使用正则表达式过滤抓到的 html 内容字符串 # 第一个简单的爬取图片的程序 import urllib.request # python自带
-
JavaScript切换搜索引擎的导航网页搜索框实例代码
废话不多说了,直接给大家贴代码了,具体代码如下所述: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <style> #search ul { list-style-type: none; display: block; width: 100px; height
-
使用Java和WebSocket实现网页聊天室实例代码
在没介绍正文之前,先给大家介绍下websocket的背景和原理: 背景 在浏览器中通过http仅能实现单向的通信,comet可以一定程度上模拟双向通信,但效率较低,并需要服务器有较好的支持; flash中的socket和xmlsocket可以实现真正的双向通信,通过 flex ajax bridge,可以在javascript中使用这两项功能. 可以预见,如果websocket一旦在浏览器中得到实现,将会替代上面两项技术,得到广泛的使用.面对这种状况,HTML5定义了WebSocket协议,能更
-
Python实现简单网页图片抓取完整代码实例
利用python抓取网络图片的步骤是: 1.根据给定的网址获取网页源代码 2.利用正则表达式把源代码中的图片地址过滤出来 3.根据过滤出来的图片地址下载网络图片 以下是比较简单的一个抓取某一个百度贴吧网页的图片的实现: # -*- coding: utf-8 -*- # feimengjuan import re import urllib import urllib2 #抓取网页图片 #根据给定的网址来获取网页详细信息,得到的html就是网页的源代码 def getHtml(url): pag
-
python采集百度搜索结果带有特定URL的链接代码实例
这篇文章主要介绍了python采集百度搜索结果带有特定URL的链接代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 #coding utf-8 import requests from bs4 import BeautifulSoup as bs import re from Queue import Queue import threading from argparse import ArgumentParser arg = Argu
-
基于JS开发微信网页录音功能的实例代码
具体代码如下所示: wx.ready(function () { var startRecordflag = false var startTime = null //btnRecord 为录音按钮dom对象 btnRecord.addEventListener('touchstart', function (event) { event.preventDefault(); startTime = newDate().getTime(); // 延时后录音,避免误操作 recordTimer =
随机推荐
- Zend Framework教程之Zend_Registry对象用法分析
- Python2.x中str与unicode相关问题的解决方法
- vue-resource调用promise取数据方式详解
- Netsh 命令备份和恢复网络设置
- java多线程编程之使用thread类创建线程
- JavaMail实现发送邮件功能
- JavaScript中提前声明变量或函数例子
- Wordpress php 分页代码
- java基于servlet使用组件smartUpload实现文件上传
- 修改MYSQL密码的几种常用方法总结
- 浅谈Android手机联系人开发之增删查改功能
- Android实现轮播效果的两种方法
- asp.net基础学习之前端页面布局
- C#实现读取注册表监控当前操作系统已安装软件变化的方法
- javascript asp教程 日期相关
- Java网络编程教程之设置请求超时的方法
- 浅谈Vue内置component组件的应用场景
- 约瑟夫经典问题扩展成双向约瑟夫问题
- JS实现在文本指定位置插入内容的简单示例
- Vue.js如何使用Socket.IO的示例代码