php抓取网页数据插入数据库(snoopy()、file_get_contents(.class.phpsnoopy)

优采云 发布时间: 2021-09-19 08:18

  php抓取网页数据插入数据库(snoopy()、file_get_contents(.class.phpsnoopy)

  curl()、file\get\ucontents()、snoopy.class.php是远程页面捕获或采集. 它们具有相同的功能。优点和缺点是什么?让我们逐一介绍一下:

  snoopy.class.php

  Snoopy是一个使用fsockopen自行开发的类。它效率高,不需要特定于服务器的配置支持。它可以在普通虚拟主机中使用,但通常会出现问题。官方下载网站:

  Snoopy是一个PHP类,用于模拟浏览器的功能。您可以获取web内容并发送表单

  史努比功能:

  1、grab获取网页内容

  2、抓取网页的文本内容(删除HTML标记)抓取文本

  3、grab网页链接,表单获取链接获取表单

  4、support代理主机

  5、支持基本用户名/密码身份验证

  6、support设置用户代理、引用、cookie和标题内容

  7、支持浏览器重定向,可以控制重定向深度

  8、可以将网页中的链接扩展为高质量URL(默认)

  9、提交数据并获取返回值

  10、支持跟踪HTML框架

  11、支持重定向时@Transfer cookies

  可以要求PHP4或以上。因为它是一个PHP类,所以不需要进行扩展。当服务器不支持curl时,它是最佳选择

  附件:

  史努比中文手册:

  使用示例:

  史努比的缺陷和卷曲的力量:

  文件获取内容()

  file_uuget_uucontents是一个简单的fsockopen函数包,效率较低,但爬网的成功率很高,所以我通常在Snoopy出现问题5.时问他0.0增加了对上下文的支持。通过上下文,他还可以发送标题信息、自定义用户代理、引用和cookies5.1.0偏移量和maxlen参数将添加到文件的只读部分

  curl()

  Curl通常用于抓取网页。第二个是获取或发布数据。第三个应用程序是实现PHP多线程任务

  最强大的,可以模拟浏览器的几乎所有方面,几乎可以混淆真实与虚假。它也非常高效,支持多线程,但是需要启用curl扩展

  Curl是一种使用URL语法传输文件和数据的工具。它支持许多协议,如HTTP、FTP、Telnet等。PHP还支持curl库,这些库通常用于远程页面获取和采集

  还支持断点续集范围代码:

  $ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.spiegel.de/');

curl_setopt($ch, CURLOPT_RANGE, '0-500');

curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);

curl_close($ch);

echo $result;

/**

*But as noted before if the server doesn't honor this header but sends the whole file curl will download all of it. E.g. http://www.php.net ignores the header. But you can (in addition) set a write function callback and abort the request when more data is received, e.g.

* php 5.3+ only

* use function writefn($ch, $chunk) { ... } for earlier versions

*/

$writefn = function($ch, $chunk) {

static $data='';

static $limit = 500; // 500 bytes, it's only a test

$len = strlen($data) + strlen($chunk);

if ($len >= $limit ) {

$data .= substr($chunk, 0, $limit-strlen($data));

echo strlen($data) , ' ', $data;

return -1;

}

$data .= $chunk;

return strlen($chunk);

};

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.php.net/');

curl_setopt($ch, CURLOPT_RANGE, '0-500');

curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);

curl_setopt($ch, CURLOPT_WRITEFUNCTION, $writefn);

$result = curl_exec($ch);

curl_close($ch);

  使用教程地址:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线