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、测试代码

  • 相关阅读:
    Codeforces 1316B String Modification
    Codeforces 1305C Kuroni and Impossible Calculation
    Codeforces 1305B Kuroni and Simple Strings
    Codeforces 1321D Navigation System
    Codeforces 1321C Remove Adjacent
    Codeforces 1321B Journey Planning
    Operating systems Chapter 6
    Operating systems Chapter 5
    Abandoned country HDU
    Computer HDU
  • 原文地址:https://www.cnblogs.com/legend-song/p/4208284.html
Copyright © 2011-2022 走看看