伟大的筒子们,我们需要经常采集。
不知道大家每次采集的时候会不会烦躁,不用八爪鱼,不用PYTHON 是不是感到手无力,看到正则匹配每次匹配不对,一换采集内容就是头疼,重新拼写正则?
不要说是高手 ,就是老手也会烦躁。
今天 就在这里我给大家分享一个传说中 你要你会能看懂CSS 就会采集的小插件(科技改版生活,懒人改变世界)。
那就是PHPQuery ;扯淡扯累了。直接上说明:
include 'phpQuery.php'; phpQuery::newDocumentFile('http://www.phper.org.cn'); echo pq("title")->text();        // 获取网页标题echo pq("div#header")->html();        // 获取id为header的div的html内容

上例中第一行引入phpQuery.PHP文件,

第二行通过newDocumentFile加载一个文件,

第三行通过pq()函数获取title标签的文本内容,

第四行获取id为header的div标签所包含的HTML内容。

主要做了两个动作,即加载文件和读取文件内容。

二、载入文档(loading documents)

加载文档主要通过phpQuery::newDocument来进行操作,其作用是使得phpQuery可以在服务器预先读取到指定的文件或文本内容。

主要的方法包括:

phpQuery::newDocument($html, $contentType = null)

phpQuery::newDocumentFile($file, $contentType = null)

phpQuery::newDocumentHTML($html, $charset = ‘utf-8′)

phpQuery::newDocumentXHTML($html, $charset = ‘utf-8′)

phpQuery::newDocumentXML($html, $charset = ‘utf-8′)

phpQuery::newDocumentPHP($html, $contentType = null)

phpQuery::newDocumentFileHTML($file, $charset = ‘utf-8′)

phpQuery::newDocumentFileXHTML($file, $charset = ‘utf-8′)

phpQuery::newDocumentFileXML($file, $charset = ‘utf-8′)

phpQuery::newDocumentFilePHP($file, $contentType)

三、pq()函数用法

pq()函数的用法是phpQuery的重点,主要分两部分:即选择器和过滤器

【选择器】

要了解phpQuery选择器的用法,建议先了解jQuery的语法

最常用的语法包括有:

pq('#id'):即以#号开头的ID选择器,用于选择已知ID的容器所包括的内容

pq('.classname'):即以.开头的class选择器,用于选择class匹配的容器内容

pq('parent > child'):选择指定层次结构的容器内容,如:pq('.main > p')用于选择class=main容器的所有p标签

更多的语法请参考jQuery手册

【过滤器】

主要包括::first,:last,:not,:even,dd,:eq(index),:gt(index),:lt(index),:header,:animated等

如:

pq('p:last'):用于选择最后一个p标签

pq('tr:even'):用于选择表格中偶然行

四、phpQuery连贯操作

pq()函数返回的结果是一个phpQuery对象,可以对返回结果继续进行后续的操作,例如:

pq('a')->attr('href', 'newVal')->removeClass('className')->html('newHtml')->...

详情请查阅jQuery相关资料,用法基本一致,只需要注意.与->的区别即可。

phpQuery-0.9.5.386.zip

286.95 KB, 下载次数: 7, 下载积分: 积分 -1

关于PHP 采集类的更多相关文章

  1. 分享一个强大的采集类,还可以模拟php多进程

    做采集的时候,可以使用file_get_contents()去获取网页源代码,但是使用file_get_contents采集,速度慢,而且超时时间,不好控制.如果采集的页面不存在,需要等待的时间很长. ...

  2. PHP抓取采集类snoopy介绍

    PHP抓取采集类snoopy介绍 一个PHP的抓取方案 在 2011年07月04日 那天写的     已经有 10270 次阅读了 感谢 参考或原文   服务器君一共花费了14.288 ms进行了2次 ...

  3. snoopy(强大的PHP采集类) 详细介绍

    Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单,可以用来开发一些采集程序和小偷程序,本文章详细介绍snoopy的使用教程. Snoopy的一些特点: 抓取网页的内容 fe ...

  4. PHP采集类:Snoopy.class.php

    Snoopy是一个php采集类,用来模拟浏览器获取网页内容和发送表单. 下面是一些Snoopy特性: 容易抓取网页内容 容易抓取页面文本(去除HTML标签) 容易抓取网页内链接 支持代理抓取 支持基本 ...

  5. snoopy 强大的PHP采集类使用实例代码

    下载地址: http://www.jb51.net/codes/33397.html Snoopy的一些特点: 1抓取网页的内容 fetch 2 抓取网页的文本内容 (去除HTML标签) fetcht ...

  6. php 采集类snoopy http://www.jb51.net/article/27568.htm | cURL、file_get_contents、snoopy.class.php 优缺点

    Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单. Snoopy的特点: 1.抓取网页的内容 fetch 2.抓取网页的文本内容 (去除HTML标签) fetchtext ...

  7. C#数据采集类

    using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...

  8. PHP SNOOPY采集类 总结

    1.基础教程 Snoopy的一些特点: 1抓取网页的内容 fetch 2 抓取网页的文本内容 (去除HTML标签) fetchtext 3抓取网页的链接,表单 fetchlinks fetchform ...

  9. 让OMCS支持更多的视频采集设备

    有些OMCS用户在他的系统使用了特殊的视频采集卡作为视频源(如AV-878采集卡),虽然这些采集卡可以虚拟为一个摄像头,但有些视频采集卡需要依赖于自带了sdk才能正常地完成视频采集工作.在这种情况下, ...

随机推荐

  1. iOS布局

    1.Masonry 创建constraint来定义布局的方式: 1.1. mas_makeConstraints : 你可以使用局部变量后者属性来保存以便下次应用它 1.2. mas_updateCo ...

  2. GCD(欧拉函数)

    GCD Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio ...

  3. Day1作业-模拟登录

    # /usr/bin/env python# -*- coding: utf-8 -*-# Author:jenvid.yangimport getpassimport shutiluserspwd ...

  4. 使用Lock锁生产者消费者模式

    package com.java.concurrent; import java.util.concurrent.locks.Condition; import java.util.concurren ...

  5. 无阻赛的脚本(js脚本延迟方法)

    js脚本的加载与执行 1.延迟脚本(defer属性) 带有defer属性的script标签,可以放置在文档的任何位置,在页面解析到该标签时,会开始下载该脚本,但是不会立即执行,直到dom加载完成(on ...

  6. seajs源码

    /*** Sea.js 3.0.0 | seajs.org/LICENSE.md 中文注释由 李祥威 添加,为个人对细节的理解,官方解释很详细的地方就不说了 难免有错漏,联系我: chuangweil ...

  7. sql 1.1 1.1.1 1.10.1 排序

    解决思路:计算每位的权重,得到序号完整的权重值,使用权重值进行排序! 创建sql 函数如下: ALTER FUNCTION [dbo].[SequenceToOrderNum] ( @Sequence ...

  8. C#的Main(String[] args)参数输入问题

    1.新建一个控制台应用程序,保存在桌面上,Main函数如下所示 using System;using System.Collections.Generic;using System.Linq;usin ...

  9. 一篇文章让你明白python的装饰器

    在看闭包问题之前先来看看关于python中作用域的问题 变量作用域 对于上述代码中出现错误,肯定没什么疑问了,毕竟b并没有定义和赋值,当我们把代码更改如下后: 再看一个例子: 首先这个错误已经非常明显 ...

  10. MacOS 下安装mysqlclient 的问题及解决办法

    [操作环境] 操作系统:MacOS X 10.13.1 mysql运行环境:Docker Docker版本:17.09-ce 在开发Django时,刚开始使用的sqlite进行开发,想部署到生产环境需 ...