Nutch
coco_ethan
Your rose,My love!
展开
-
nutch源代码阅读心得
主要类分析:一、 org.apache.nutch.crawl.Injector: 1,注入url.txt 2,url标准化 3,拦截url,进行正则校验(regex-urlfilter.txt) 4,对符URL标准的url进行map对构造,在构造过程中给CrawlDatum初始化得分,分数可影响url host的搜索排序,和采集优先级! 5转载 2013-12-02 10:01:47 · 844 阅读 · 0 评论 -
配置Nutch模拟浏览器以绕过反爬虫限制
当我们配置Nutch抓取 http://yangshangchuan.iteye.com 的时候,抓取的所有页面内容均为:您的访问请求被拒绝 ......这是最简单的反爬虫策略(该策略简单地读取HTTP请求头User-Agent的值来判断是人(浏览器)还是机器爬虫),我们只需要简单地配置Nutch来模拟浏览器(simulate web browser)就可以绕过这种限制。 在nut转载 2014-08-18 15:58:47 · 1338 阅读 · 0 评论 -
Nutch1.8+Hadoop1.2+Solr4.3分布式集群配置
Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。当然在百度百科上这种方法在Nutch1.2之后,已经不再适合这样描述Nutch了,因为在1.2版本之后,Nutch专注的只是爬取数据,而全文检索的部分彻底的交给Lucene和Solr,ES来做了,当然因为他们都是近亲关系,所以Nutch抓取完后的数据,非常easy的就能生成全文索转载 2014-12-19 10:18:42 · 1064 阅读 · 0 评论 -
Nutch1.7学习笔记1:基本环境搭建及使用
说明:Nutch有两个主版本1.x和2.x,它们的主要区别是2.x引入了Gora作为存储抽象层,从而支持各种NoSQL数据库,如HBase,Cassandra等。本文是以1.x的最新版Nutch1.7 (发布于2013年6月25日)为例。环境准备:一台Ubuntu Linux服务器,可以装在VMware虚拟机中。下载Nutch1.7版本的二进制包,地址:http://www.a转载 2014-12-19 10:44:33 · 582 阅读 · 0 评论 -
Nutch1.7学习笔记2:基本工作流程分析
说明:本文的工作流程分析基于1.x的最新版Nutch1.7。找到分析源头分析软件的基本工作流程,通常都是从它的运行命令开始。在前面的一文 (地址:http://blog.csdn.net/gobitan/article/details/13916981)中提到了运行Nutch的命令为$bin/nutch crawl urls -dir crawl -depth 3 -topN转载 2014-12-19 10:45:44 · 448 阅读 · 0 评论 -
Nutch1.7学习笔记3:Injector源代码分析
Injector的主要功能Injector的主要功能是将urls目录下的文本文件中的URL地址注入到CrawlDb中。Injector类基本构成(1) 三个主成员变量nutchScoreMDNamenutchFetchIntervalMDNamenutchFixedFetchIntervalMDName(2) 两个内部静态类Injec转载 2014-12-19 10:46:31 · 554 阅读 · 0 评论 -
Nutch1.7学习笔记4:Generator源代码分析
Generator分析Generator的功能主要是将注入的URL按照一定的规则生产一系列CrawlDb的子集。这里的规则包括:抓取时间是否符合要求,是否符合设定过滤规则,根据页面评分进行排序,根据URL的host/ip/domain划分子集,是否超过设定的generate最大值(就是Crawl命令中的topN值)等。generate方法主要包括三个job的执行:第一个jo转载 2014-12-19 10:47:08 · 410 阅读 · 0 评论 -
Nutch1.7学习笔记7:Robots协议处理流程
说明:通常来说,网络爬虫应该遵循网站所描述的robots协议。因此,任何网络爬虫都有关于robots协议部分的处理。分析入口:Robot相关处理的入口位于Fetcher.java的L676,如下所示:BaseRobotRules rules = protocol.getRobotRules(fit.url, fit.datum);Fetcher抓取每个URL之前都会转载 2014-12-19 10:48:58 · 590 阅读 · 0 评论 -
Nutch1.7学习笔记5:Fetcher源代码分析
Fetcher分析Fetcher是以生产者/消费者模式来处理网页抓取的。QueueFeeder作为生产者,从前面Generator中产生的读取出来,然后加入到FetchItemQueues队列中,加入的时候需处理队列已满等异常情况。FetcherThread作为消费者,不断从队列里取出待抓取的URL进行抓取。Fetcher与Injector和Generator的不同转载 2014-12-19 10:47:45 · 512 阅读 · 0 评论 -
Nutch1.7学习笔记6:ParseSegment源代码分析
ParseSegment分析ParseSegment类的结构相对要简单一些,与Injector等在内部类中实现map和reduce的方式不同,它直接在类中实现。核心方法解析:map方法的功能包括:(1) 检查URL对应的Content是否抓取成功,如果没有直接返回,否则继续;(2) 检查Content的内容是否为truncated以及parser.s转载 2014-12-19 10:48:19 · 567 阅读 · 0 评论 -
Nutch 教程
介绍Apache Nutch是一个用Java编写的开源网络爬虫。通过它,我们就能够自动地找到网页中的超链接,从而极大地减轻了维护工作的负担,例如检查那些已经断开了的链接,或是对所有已经访问过的网页创建一个副本以便用于搜索。接下来就是Apache Solr所要做的。Solr是一个开源的全文搜索框架,通过Solr我们能够搜索Nutch已经访问过的网页。幸运的是,关于Nutch和Solr之间的整转载 2014-01-12 14:31:10 · 850 阅读 · 0 评论 -
Nutch笔记
1、记得在加入url的时候要在url后面加/,不然就采不到下一层的网页了。2、记得run nutch in eclipese 的时候,要把.job加到build path和三个site添加到conf下。原创 2013-12-17 09:57:02 · 733 阅读 · 0 评论 -
Nutch的抓取工作问题
现在碰到的棘手问题是,要对Nutch的fetch结果content进行媒介(天涯,网易等等)分类,比如:data/segements/content/part-00000/天涯 data/segements/content/part-00000/网易 。。。我的想法是在fetch的outpath进行构造,但貌似行不通。。。还有另一种方案,就是按Nutch的原格式,把数据都存储在同一个pa原创 2013-12-11 16:09:21 · 705 阅读 · 0 评论 -
Nutch中的一些小的问题解决
今天主要解决了Nutch中的一些小的问题,下面分别简述一下。1.网页快照乱码问题Nutch的网页快照是乱码,解决办法是修改tomcat/webapps/nutch目录下的cached.jsp文件,修改其中的第63行。原来的代码是:content = new String(bean.getContent(details);修改后的代码是:content = new S转载 2013-12-02 10:14:28 · 718 阅读 · 0 评论 -
nutch的基本工作流程理解
(一):Nutch的工作流程:Crawdb、linkdb是web link目录,存放url及url的互联关系,作为爬行与重新爬行的依据。segments是主目录,存放抓回来的网页。页面内容有bytes[]的raw content 和 parsed text的形式。nutch以广度优先的原则来爬行,因此每爬完一轮会生成一个segment目录。index是luc转载 2013-12-02 09:53:43 · 915 阅读 · 0 评论 -
nutch抓取动态网页
解决搜索动态内容的问题:需要注意在conf下面的2个文件:regex-urlfilter.txt# skip URLs containing certain characters as probable queries, etc.-[?*!@=] (-改+)这段意思是跳过在连接中存在? * ! @ = 的页面,因为默认是跳过所以,在动态页中存在?一般按照默认的是不能抓取到的。可以在转载 2013-12-02 10:26:45 · 1459 阅读 · 0 评论 -
Nutch 源码分析 (1)
org.apache.nutch.crawl.Crawl类的主函数如下所示: // 应该知道,Nutch查找文件系统是基于Linux系统的机制的,所以提供启动的命令与Linux的Shell命令很相似。 public static void main(String args[]) throws Exception { if (args.length // 检转载 2013-12-03 17:50:11 · 991 阅读 · 0 评论 -
Nutch+Hadoop集群搭建
1、Apache Nutch Apache Nutch是一个用于网络搜索的开源框架,它提供了我们运行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬虫。1.1、Nutch的组件结构WebDB:存储网页数据和连接信息Fetch lists:将WebDB所存储的连接分成多个组,来用于分布式检索Fetchers:检索Fetch list中的内容并下转载 2013-11-29 14:48:07 · 840 阅读 · 0 评论 -
Nutch Crawl执行过程解析
为了研究怎么解决recrawl的问题,今天仔细观察了一下nutch crawl的每一步具体发生了什么。 ==============准备工作====================== (Windows下需要cygwin) 从SVN check out代码; cd到crawler目录; ==============inject======================转载 2013-12-11 18:47:47 · 1219 阅读 · 0 评论 -
Nutch读取网页字段
一、Nutch的一些读取命令1.查看crawldb数据库查看url地址总数和它的状态及评分:bin/nutch readdb url/crawldb/ -stats查看每个url地址的详细内容,导出数据:bin/nutch readdb url/crawldb/ -dump crawldb(导出的地址)查看具体的url,以163为例:bin/nu转载 2013-12-14 14:10:33 · 1835 阅读 · 0 评论 -
在eclipse上执行Nutch报错com.google.common.util.concurrent.ThreadFactoryBuilder
在eclipse上执行Nutch报错:Error: java.lang.ClassNotFoundException: com.google.common.util.concurrent.ThreadFactoryBuilder原创 2013-12-16 11:18:21 · 10896 阅读 · 2 评论 -
Nutch1.7学习笔记8:CrawlDb源代码分析
CrawlDb分析功能:将解析出来的Segment中的URL更新至CrawlDb。update方法update方法的参数包含四个参数:(1) CrawlDb数据库的路径,如crawl/crawldb;(2) Segment的路径,如crawl/segments/20131130101034;(3) 是否规范化的布尔值;(4) 是否进行过滤的布转载 2014-12-19 10:49:54 · 528 阅读 · 0 评论