Larbin初试

时间:2021-06-27 02:27:55

前阵子找工作的时候经常会看到epoll多路复用的知识点,无奈自己一点都不懂。慌忙之际也只能去了解个大概。所以最近闲下来之后想要基于epoll机制实现一个比较有用的东西,刚好最近又想爬些东西,希望这次能够写一个高效一点的爬虫。

以前只看过一点点的nutch,自己写的就是用python的几个简单功能来爬,说真的一点技术含量都没,就是把网上的代码拿来改一改,跑一跑,效率没有,还经常出错。

Larbin is a web crawler (also called (web) robot, spider, scooter...). It is intended to fetch a large number of web pages to fill the database of a search engine. With a network fast enough, Larbin should be able to fetch more than 100 millions pages on a standard PC.
Larbin is (just) a web crawler, NOT an indexer. You have to write some code yourself in order to save pages or index them in a database.

下载:http://larbin.sourceforge.net/index-eng.html

安装

下载了larbin2.6.3,README里面的安装说明很简单,就是:

 ./configure
make

但是实际需要做些准备工作的:

 apt-get install xutils-dev

这样执行configure时才能用到makedepend命令。

make的时候出现若干错误:

 parse.c: At top level:
parse.c::: error: conflicting types for ‘adns__parse_domain’
adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu,
^
In file included from parse.c:::
internal.h::: note: previous declaration of ‘adns__parse_domain’ was here
adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu,

这个简单,到internal.h把函数声明改成一样就行。

 string.cc::: fatal error: iostream.h: No such file or directory
#include <iostream.h>
^
compilation terminated.
make[]: *** [string.o] Error

改成<iostream>就行了,用到c++的东西就加上std::也就没事了。不过有大量文件都出现这种情况。。。这一点还是要吐槽一下。

网上搜了一下,学习了几条命令用法。

 sed -e 's/iostream.h/iostream/g' -i `grep -rl iostream.h *`  
sed -e 's/cerr/std::cerr/g' -i `grep -rl cerr *`
sed -e 's/endl/std::endl/g' -i `grep -rl endl *`

grep -l表示只打印文件名。

运行

配置了一下larbin.conf和options.h,注释写得都很清楚,重新编译了一下,试一下京东,爬不下来。

京东的robots.txt是这样子的:

 User-agent: *
Disallow: /?*
Disallow: /pop/*.html
Disallow: /pinpai/*.html?*
User-agent: EtaoSpider
Disallow: /

User-agent: * 这里的*代表的所有的搜索引擎种类。

Disallow: / 就是不允许爬取所有目录,看来这两家(一淘和京东)的确是在死磕。

照这样子看,应该是可以爬京东的,但就是没有数据,还是等我看完源码之后再试试。

改成爬http://demo.aisec.cn/demo/ ,就有数据了。

Larbin初试

ok,总算是跑起来了,知道larbin有什么功能了,就可以开始看它的实现了。

Larbin初试的更多相关文章

  1. caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题

    之前已经配置过一次caffe环境了: Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境 但其中也提到,编译时,用到了cuda6.5,但 ...

  2. 初试Nodejs——使用keystonejs创建博客网站2(修改模板)

    上一篇(初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs))讲了keystonejs的安装.安装完成后,已经具备了基本的功能,我们需要对页面进行初步修改,比如,增加 ...

  3. 项目中初试PHP单元测试

    只能叫初试,前面虽然做了一些PHPUnit与团队所用框架的整合,但在整个团队还没有人可以主动推动这个事情,而作为Leader最重要的一种能力应该是"让正确的事情发生",所以今天开始 ...

  4. VPS -Digital Ocean -初试以及VPN的搭建

    首先恭喜你找到这篇博客,它会带你走出困境. 题外话(请忽略):一直以来想搞一个VPS,终于在自己的刺激下试了一下Digital Ocean,还没有使用很长时间不做太多评论,唯一给我的感觉是各种操作还算 ...

  5. 初试微信小程序

    2016年11月3日,微信小程序终于公测了,大家可以正式开发了.早在这之前,应公司要求,和同事就早早的试了一下微信小程序的开发,特此记录一下: 微信官方小程序文档:https://mp.weixin. ...

  6. 爬虫Larbin解析&lpar;二&rpar;——sequencer&lpar;&rpar;

    分析的函数: void sequencer() //位置:larbin-2.6.3/src/fetch/sequencer.ccvoid sequencer() { bool testPriority ...

  7. Win7&plus;VS2013初试Thrift

    win7环境下VS2013编译boost_1_58_0步骤: 官网下载boost_1_58_0(直接下载),解压 cmd窗口cd到boost_1_58_0,执行bootstrap.bat cmd窗口获 ...

  8. (转)开源爬虫larbin分析

    转自风中之炎的博客:http://www.cnblogs.com/FengYan/archive/2012/02/04/2338630.html 1. larbin简介(百度百科) larbin是一种 ...

  9. 爬虫Larbin解析&lpar;一&rpar;——Larbin配置与使用

    介绍 功能:网络爬虫 开发语言:c++ 开发者:Sébastien Ailleret(法国) 特点:只抓取网页,高效(一个简单的larbin的爬虫可以每天获取500万的网页) 安装 安装平台:Ubun ...

随机推荐

  1. AtomicBoolean运用

    AtomicBoolean运用 首先先看如下例子 private static class BarWorker implements Runnable { private static boolean ...

  2. python类型转换、数值操作

    类型转换 代码  1 函数                      描述  2 int(x [,base ])         将x转换为一个整数  3 long(x [,base ])       ...

  3. python-day7 python内置模块 面向对象

    1.configparser模块 configparser用于处理特定格式的文件,其本质上是利用open来操作文件 # 注释1 ; 注释2 [section1] # 节点 k1 = v1 # 值 k2 ...

  4. PHP实现浏览历史记录

    http://www.3a88.com/service/206.html http://www.1360.cc/ZhanChangJiaoCheng/6831.html http://www.osch ...

  5. ASP&period;NET5中间件

    小的应用组件可以包含到Http请求管道当中,ASP.NET5 集成了中间件,被包在了应用程序的Configure方法当中. 1. 什么是中间件 中间件是一组被装到应用程序管道的请求和响应中的组件.每一 ...

  6. QOdbc 读写 excel

    ).toString(); ).toInt(); qDebug()<< name << age <<endl; } // 关闭数据库 db.close(); } i ...

  7. 使用rsync在windows&lpar;服务端&rpar;与linux&lpar;客户端&rpar;之间同步

    说明: 1.cwRsyncServer服务端 系统:Windows7 IP地址:192.168.0.110 2.Rsync客户端 系统:CentOS 6.7 IP地址:192.168.0.141 实现 ...

  8. VS 在创建C&num;类时添加文件描述

    在新建一个C#类时,为了描述该类的功能.以及文件建立的相关信息,并保护自己的版权要在文件的开头添加一些信息.如下: /***************************************** ...

  9. 业务侧有大量timeout请求超时日志

    故障背景:程序日志发现有程序请求数据库有大量的timeout请求故障时间:xxx~xxx 故障排查:排查应用服务器和数据库服务器网络和其它硬件监控没有断点,数据库监控请求数当时时间段几乎为0 故障分析 ...

  10. Linux查看特定端口是否被占用并kill掉相关进程

    今天在搭建Zookeeper集群的时候,需要频繁启动zookeeper,但是启动的时候,有时会提示下列错误信息: zookeeper需要的地址已经被占用了,其实是因为上一次的zookeeper没有关闭 ...