当前位置: 首页 > news >正文

Larbin初试

前阵子找工作的时候经常会看到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里面的安装说明很简单,就是:

1 ./configure
2 make

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

1 apt-get install xutils-dev

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

make的时候出现若干错误:

1 parse.c: At top level:
2 parse.c:113:13: error: conflicting types for ‘adns__parse_domain’
3  adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu,
4              ^
5 In file included from parse.c:28:0:
6 internal.h:569:13: note: previous declaration of ‘adns__parse_domain’ was here
7  adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu,

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

1 string.cc:6:22: fatal error: iostream.h: No such file or directory
2  #include <iostream.h>
3                       ^
4 compilation terminated.
5 make[2]: *** [string.o] Error 1

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

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

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

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

运行

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

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

1 User-agent: *             
2 Disallow: /?*     
3 Disallow: /pop/*.html  
4 Disallow: /pinpai/*.html?*      
5 User-agent: EtaoSpider   
6 Disallow: /              

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

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

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

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

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

转载于:https://www.cnblogs.com/linyx/p/4132332.html

相关文章:

  • 老板十本必读财经图书
  • 一款纯css3实现的超炫3D表单
  • ASP中一个“对象关闭时,不允许操作。”的诡异问题……
  • 超出打开游标的最大数异常的解决
  • sendmail配置文字版本(RHCE区域有图文版)
  • 人生在世,注定要受许多委屈
  • 封装类库总结录
  • 细说设计模式之模板方法
  • 黄聪:OLAP与OLTP介绍
  • 无线局域网密码破解
  • jfinal 使用druid
  • windows8 概念版视频
  • OC--内存管理总结
  • Flex调用swf内方法
  • id
  • gf框架之分页模块(五) - 自定义分页
  • learning koa2.x
  • mysql 5.6 原生Online DDL解析
  • MySQL的数据类型
  • passportjs 源码分析
  • Spark学习笔记之相关记录
  • 仿天猫超市收藏抛物线动画工具库
  • 坑!为什么View.startAnimation不起作用?
  • 漂亮刷新控件-iOS
  • 微信小程序设置上一页数据
  • 问题之ssh中Host key verification failed的解决
  • 原生 js 实现移动端 Touch 滑动反弹
  • 最近的计划
  • Python 之网络式编程
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #pragma multi_compile #pragma shader_feature
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (C)一些题4
  • (pojstep1.1.2)2654(直叙式模拟)
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (理论篇)httpmoudle和httphandler一览
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Framework 4.6.2改进了WPF和安全性
  • [100天算法】-目标和(day 79)
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [asp.net core]project.json(2)
  • [flask] flask的基本介绍、flask快速搭建项目并运行
  • [FUNC]判断窗口在哪一个屏幕上
  • [Gamma]阶段测试报告
  • [git]git命令如何取消先前的配置
  • [IE9] IE9 beta版下载链接
  • [JavaScript]如何讓IE9, IE8, IE7, IE6關閉視窗時不彈出對話訊息
  • [LeetCode]—Rotate Image 矩阵90度翻转
  • [Linux打怪升级之路]-vim编辑器(看就能马上操作噢)
  • [one_demo_12]递归打印*\n*.*.\n*..*..\n图形
  • [pyqt5]PyQt5窗体背景图片拉伸填充