最近看PHP书籍,发现了一个好东东,就是Snoopy类。Snoopy是一个php类库,用来模拟浏览器的功能,可以获取网页内容,发送表单。

Snoopy的一些特点: 

1抓取网页的内容 fetch 
2 抓取网页的文本内容 (去除HTML标签) fetchtext 
3抓取网页的链接,表单 fetchlinks fetchform 
4 支持代理主机 
5支持基本的用户名/密码验证 
6 支持设置 user_agent, referer(来路), cookies 和 header content(头文件) 
7支持浏览器重定向,并能控制重定向深度 
8能把网页中的链接扩展成高质量的url(默认) 
9提交数据并且获取返回值 
10 支持跟踪HTML框架 
11支持重定向的时候传递cookies 
要求php4以上就可以了 由于本身是php一个类 无需扩支持 服务器不支持curl时候的最好选择,

使用方法:

1、先下载Snoopy类,下载地址:http://sourceforge.net/projects/snoopy/

2、先实例化一个对象,然后调用相应的方法即可获取抓取的网页信息

一,取得HTML内容

例子如下:

<?php

   include "../Snoopy/Snoopy.class.php";

   $snoopy = new Snoopy;

   $snoopy->fetch("http://www.baidu.com");

   $line = $snoopy->results;

   print_r($line);

?>

得到的结果如下所示:

二,取得纯文本内容

<?php

   include "../snoopy/snoopy.class.php";

   $snoopy = new Snoopy;

   $snoopy->fetchtext("http://baidu.com");

   $line = $snoopy->results;

   print_r($line);

?>

结果如下:

3,取得表单字段内容

程序如下:

<?php

  include "../snoopy/snoopy.class.php";

  $snoopy = new Snoopy;

  @$snoopy->fetchform("http://baidu.com");

  print $snoopy->results;

?>

结果如下:

PHP中Snoopy类的使用的更多相关文章

  1. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  2. 基础知识(05) -- Java中的类

    Java中的类 1.类的概念 2.类中的封装 3.对象的三大特征 4.对象状态 5.类与类之间的关系 ------------------------------------------------- ...

  3. Objective-C中的类目,延展,协议

    Objective-C中的类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛的,瞬间感觉OC好高大上.在其他OOP语言中就没见过这些名词,刚看到这三个名词 ...

  4. CSS中伪类及伪元素用法详解

    CSS中伪类及伪元素用法详解   伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...

  5. Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法

    Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法 如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1i ...

  6. C#中timer类的用法

    C#中timer类的用法 关于C#中timer类  在C#里关于定时器类就有3个   1.定义在System.Windows.Forms里   2.定义在System.Threading.Timer类 ...

  7. JAVA中的类和接口

    1.类: 类是具有相同属性和方法的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属 ...

  8. java中Color类的简单总结

    java中Color类的简单总结 1.颜色的常识 任何颜色都是由三原色组成(RGB),JAVA中支持224为彩色,即红绿蓝分量取值 介于0-255之间(8位表示) 2.Color类中的常量 publi ...

  9. 《CoffeeScript应用开发》学习:第五章 CoffeeScript中的类

    在CoffeeScript中定义类 在CoffeeScript中,使用class定义类,使用关键字new实例化对象. 给类绑定方法 class Airplane takeOff: -> cons ...

随机推荐

  1. Pytorch1.0入门实战一:LeNet神经网络实现 MNIST手写数字识别

    记得第一次接触手写数字识别数据集还在学习TensorFlow,各种sess.run(),头都绕晕了.自从接触pytorch以来,一直想写点什么.曾经在2017年5月,Andrej Karpathy发表 ...

  2. 给HTML页面指定元素添加属性,添加父元素

    给HTML页面指定元素添加属性,添加父元素 下面拿一个给富文本中所有的图片增加layer弹窗效果. 思路: 给富文本父元素设置属性. 获取父元素里所有的img   此处用到querySelectorA ...

  3. Python丢弃返回值

    函数多个返回值 python的函数支持返回多个值.返回多个值时,默认以tuple的方式返回. 例如,下面两个函数的定义是完全等价的. def f(): return 1,2 def f(): retu ...

  4. python的dir()和__dict__属性的区别

    只要是有属性的数据对象(不一定是面向对象的对象实例,而是指具有数据类型的数据对象),都可以通过__dict__和dir()来显示数据对象的相关属性. __dict__可以看作是数据对象的名称空间,所以 ...

  5. spring-cloud-starter-gateway

    ********************************************************** Spring MVC found on classpath, which is i ...

  6. sqoop安装及使用

    简介: sqoop是一款用于hadoop和关系型数据库之间数据导入导出的工具.你可以通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中:也可以把数据从hdfs中导出到关系型数 ...

  7. 解决Manjaro Linux无法安装搜狗拼音

    更新:Manjaro 18.0rc1及更新版本不再需要本文的操作,可直接成功安装sogoupinyin 最近喜欢上了arch,然而遗憾的是没有太多时间用来折腾,所以选择了manjaro. 然而在安装s ...

  8. 在Fragment中保存WebView状态

    http://www.lucazanini.eu/2013/android/how-to-save-the-state-of-a-webview-inside-a-fragment-of-an-act ...

  9. tomcat域名绑定设置

    域名绑定分为单域名绑定.多域名绑定,配置主要涉及到tomcat目录下conf/server.xml文件 一.单域名绑定 1.修改server.xml 大约105行的内容(不是必须修改,如果只是绑定一个 ...

  10. MVC5 Controller构造方法获取User为空解决方法

    用如下方法获取UserId报空引用异常 public class BaseController : Controller { protected SiteContext db = new SiteCo ...