Ivspider 提供了简单、标准的使用接口与协议。简单地在程序中添加几行代码,便可拥有把一个网站所有(或大部分)的网页数据取回来的能力。
这是一个小例子(WIN32):
#include "../include/ivspider.h"
#include "command.h"
#include <stdlib.h>
#include <stdio.h>
#ifdef _DEBUG
#pragma comment(lib, "../lib/ivspiderd.lib")
#pragma message("debug")
#else
#pragma comment(lib, "../lib/ivspider.lib")
#endif
int main(int argc, char* argv[])
{
// 定义抓取参数。
SPD_RECUR_PARAM srp = {0};
srp.nAllTimeout = 3000; // 所有操作的超时值均为3000毫秒。
srp.nFollowTags = SPD_TAG_SCRIPT|SPD_TAG_LINK; // 指定为抓取<script />, <link /> 的标签链接。
srp.nRecursiveLeve = 4; // 遍历最大深度为4层。
srp.nRecursiveAmount = 1000; // 遍历最大链接数为1000个。
srp.nSpanHost = 1; // 指定可以跨站抓取。
srp.cb[SPD_EVENT_DATAIN] = (cbfun)ivs_spider_cbfun; // 指定数据返回后执行的事件函数。
srp.cb[SPD_EVENT_DATALACK] = (cbfun)ivs_spider_cbfun; // 指定丢弃数据后执行的事件函数。
printf("开始遍历……n[父链接ID, 当前页面ID, 标记名] 当前页面链接 [页面状态]\n\n");
// 按以上配置参数开始抓取 http://localhost/ 站点。
IVSpdHttpRetrieve("http://localhost/", &srp);
printf("finish\n");
getchar();
return 0;
}
主要导出函数IVSpdHttpRetrieve 的原型为