larbin 编译成功后做什么

         larbin编译成功后,有两个主要方向:一是通过相关资料读Larbin的源代码,最终的目的是自己能开发个简单的爬虫;第二个是分析得到的数据,做数据的分析与挖掘。当然,也有人想把这些数据提取出来后,怎么导入数据库。

         所有源代码的读法,肯定要用到工具。在windows下可以用vs系列,而linux开发的源代码则用SourceInsight。所以这里我使用SourceInsight软件看Larbin。

         首先通过网络知识了解爬虫的基本知识和基本问题。爬虫从一个URL出发,使用广度优先算法,遍历整个网站。其中涉及URL的规整化(MD5算法),URL的判重(Bloom Filter算法),爬虫队列的设计,对网络和文件存取的控制等问题。

         Larbin的主函数中有Larbin爬虫的主要工作流程,其代码如下:

    stateMain(-count);
    waitBandwidth(&old);
    stateMain(1);
    for (int i=0; i<global::maxFds; i++)
      global::ansPoll[i] = 0;
    for (uint i=0; i<global::posPoll; i++)
      global::ansPoll[global::pollfds[i].fd] = global::pollfds[i].revents;
    global::posPoll = 0;
    stateMain(2);
    input();
    stateMain(3);
    sequencer();
    stateMain(4);
    fetchDns();
    stateMain(5);
    fetchOpen();
    stateMain(6);
    checkAll();
    // select
    stateMain(count++);
    poll(global::pollfds, global::posPoll, 10);
    stateMain(7);

其中,stateMain 函数其实是个简单的宏,只是将状态变量简单的设置为i,记录当前爬虫所处在第几个阶段;

#define stateMain(i) (stateMain = i)


其他几个函数,网上查到的资料如下:

        1.waitbandwidth() 等待带宽满足需要 
        2.input() 将需要爬取的seed URL装载进来
        3.sequencer() 对将要爬取的页面进行缓冲,确定每一轮可以进行爬取的页面 
        4.fetchDns()  获取待爬取页面的IP地址和端口号,这需要通过练习DNS服务器将URL进行转换 
        5.fetchOpen() 获取当前网页
        6.checkAll() 做一些检验和网页链接分析(也是我们可以定制化的一部分)

先写到这,继续学习中……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值