snoopy php网页抓取工具(不是($URI)PHP一个类类类代码)

优采云 发布时间: 2021-09-09 01:02

  snoopy php网页抓取工具(不是($URI)PHP一个类类类代码)

  好吧,我不再谈论卡通史努比了。它是一个 PHP 类。它可以用来模仿网页浏览器的功能,完成获取网页内容和发送表单的任务。可以向其官方网站学习:

  快速轻松地抓取网页的内容、文本(无 Html 标签)和链接。支持代理服务器、基本用户/密码认证方式、内容。支持浏览器重定向和控制深度。将获取到的链接扩展为带域名的链接(默认),可以提交表单数据并获取结果。支持跟踪 HTML 框架(添加了0.92 版本)。支持在重定向(添加0.92 版本)结果时传递 cookie。如果是抓取帧,则每帧都会被抓取,结果保存在一个数组中。

  fetchtext($URI)

  该方法与fetch()大致相同,只是结果是文本,不包括HTML标签等无关信息。

  fetchform($URI)

  该方法只返回被抓取网页上的表单元素。

  fetchlinks($URI)

  该方法只返回被抓取网页上的链接。默认返回的链接都是收录域名的链接。

  提交($URI,$formvars)

  此方法将表单提交到指定的 $URI。 $formvars 是要传递的表单变量数组。

  提交文本($URI,$formvars)

  该方法与submit()基本相同,只是返回文本,不包括html标签等无关数据。

  提交链接($URI)

  此方法返回链接。

  在WordPress中,已经收录了这个类,而且在前面提到的RSS解析类MagpieRSS中,这个类也是用来获取RSS的。最新版的 WordPress 2.5 使用 Snoopy 下载文件来更新插件。使用的史努比类的代码是:

  

function download_url( $url ) {

    if( ! $url )

        return false;

 

    $tmpfname = tempnam(get_temp_dir(), 'wpupdate'); //获取临时文件名

    if( ! $tmpfname )

        return false;

 

    $handle = fopen($tmpfname, 'w'); //以写的方式打开临时文件

    if( ! $handle )

        return false;

 

    require_once( ABSPATH . 'wp-includes/class-snoopy.php' ); //引入 Snoopy 类

    $snoopy = new Snoopy();   

    $snoopy->fetch($url); //抓取指定的网页

 

    fwrite($handle, $snoopy->results); //把抓取得内容写到 临时文件中

    fclose($handle);

 

    return $tmpfname;

}

  ©我爱水煮鱼,本站推荐主机:阿里云。国外主机推荐使用 BlueHost。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线