zoukankan      html  css  js  c++  java
  • php 采集类snoopy http://www.jb51.net/article/27568.htm | cURL、file_get_contents、snoopy.class.php 优缺点

    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时候的最好选择。

    =====================================================================================

    file_get_contents()

    file_get_contents 是 fsockopen 功能的简单打包,效率稍低些,但是抓取成功率很高,所以在 snoopy 出问题的时候我一般那他来。5.0.0 添加了对 context 的支持,有了context,他也可以发送 header 信息,自定义用户 agent, referer, cookies 都不在话下。5.1.0 添加了 offset 和 maxlen 参数,可以只读文件的一部分内容。

    curl()

    功能最强大,几乎可以模拟浏览器的各个方面,几乎可以以假乱真。效率也很高,支持多线程,不过需要开启下 curl 扩展。

    cURL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。PHP也支持cURL库,我们常常用来远程页面抓取和采集。

    一些CMS会使用curl函数,这就需要在服务器开启CURL扩展,下面介绍具体的方法:

    1、将PHP的ext目录下的三个文件:php_curl.dll、libeay32.dll和ssleay32.dll复制到系统system32目录中。

    2、将php.ini中的
    ;extension=php_curl.dll 前面的分号去掉

    3、重启IIS或Apache

    4、测试代码

  • 相关阅读:
    火炬之光使用了哪些技术
    计算机相关,性能开销,统计数据集锦
    IOS打开应用商店应用的几种方式
    IOS怎么获取plist文件里的属性
    IOS正则表达式的用法简介
    log4net学习
    技术之外
    百度面试题[转自CSDN]
    微软.NET开发认证基础技术知识大局观——核心篇
    基于ASP.NET 2.0 实现WEB打印方法的探讨
  • 原文地址:https://www.cnblogs.com/legend-song/p/4208284.html
Copyright © 2011-2022 走看看