`

抓取流程-generator

阅读更多

 

一。topN job:对urls预处理并取topN urls by score decending.

map:<url,crawldatum> -> <score,selectorentry>。urls预处理和格式转换

a.url filter

b.初步处理是否fetch(当fetchtime 比当前时间滞后才fetch)

c.抓取间隔处理。如果 在crawl.gen.delay时间范围内,则不会再将次云抓取,这个也是索引实时度 的一个主要参数 。/7days/

d.scoring filter 作为sort value.其中link and opic只是简单地利用datum.getScore() * initSort返回。两者默认都是1.0

e.score threshold控制 。目前没有设置,作为NaN值处理.

f.更新_ngt_;同时转换输出格式。

 

 

partition:利用URLPartitioner对Url根据partition.url.mode进行hash,結果将导致相同的host(host或ip)的urls分到相同的red上去。

 

 

red:根据 topN要求,对每个red进行期望(mean)计算,所以所有red得到的不是准确的topn值。

对于生成的segnu相同的情况下,生成的临时結果fetchlist-segnum会将相关的red結果存放在同一文件下。

<score,selectorentry> --> <score,selectorentry>

 

note:DecreasingFloatComparator

 

 

二。parition job(其实是生成segment name及其中的crawl_generate数据)

m:SelectorInverseMapper,invert the input <score,selectorentry> ---> <url,selectorentry>

p:同topn job

r:convert <url,selectorentry> --> <url,crawldatum>

SequenceFileOutputFormat

 

note:这job使用了HashComparator作为outputkeycomparator,而它是优先于red执行的 ,他将host比url中的其它部分增加了权重,所以得到的結果是不同site的urls更加有均匀地分发到各red中?

也许会问,为什么topn job中的part已经相同host的urls均匀分布l在各个red中了而这里又搞乱呢?但我认为前者是不必要的,况且这样造成了如果host不均匀时出现某个red负载较重;而最关键的是这里的part,所以它是一个按url hash的值,而且增加了host的权重。

 

 

 

[三。update crawldb job]( 此job是update时才执行)

过程是:如果存在旧的crawldatum则保留下来,同时复位 _ngt_;也具备url deduplicate功能。

将injector的結果与上述的結果合并,可以看出两者都 是以<url,crawldatum>输出的,所以是可以合并 。

所以結果是:<url ,crawldatum>,note:此結果是存放在crawldb/current下,所以以MapFileOutputFormat与injector的保持一致。

 

------------

topn job:

map -> (在map后直接调用)part
         -> (所有map完成后逐个partition进行)sort -> red -> (red后直接调用) outputformat

------------

結果输出:

bnitz@leibnitz-laptop:~/Search_engine/nutch/mynutch1.2$ hadoop fs -text output/debug/segments/20110706014523/crawl_generate/part-00000
hadoop home:
http://www.163.com/    Version: 7
Status: 1 (db_unfetched)
Fetch time: Mon Jul 04 14:57:19 CST 2011
Modified time: Thu Jan 01 08:00:00 CST 1970
Retries since fetch: 0
Retry interval: 2592000 seconds (30 days)
Score: 1.0
Signature: null
Metadata: _ngt_: 1309887693964

http://www.csdn.net/    Version: 7
Status: 1 (db_unfetched)
Fetch time: Mon Jul 04 14:57:19 CST 2011
Modified time: Thu Jan 01 08:00:00 CST 1970
Retries since fetch: 0
Retry interval: 2592000 seconds (30 days)
Score: 1.0
Signature: null
Metadata: _ngt_: 1309887693964

 

 

 

 

  • 大小: 40.8 KB
分享到:
评论

相关推荐

    library-gutenberg-generator:图书馆项目生成器

    library-gutenberg-generator的工作流程主要包括以下几个关键步骤: 1. 数据源获取:项目首先从古腾堡计划的数据库中抓取所需书籍的元数据和文本内容。这一步通常涉及到网络爬虫技术,通过合法且非侵入性的方式获取...

    Azurite-docs-generator:从JavaDocs收集数据,并生成可在Azurite文档网站上使用HTML页面

    Azurite-docs-generator-main 这个压缩包文件名可能是项目的主要代码仓库或工作目录。在解压后,你将看到项目的源代码、配置文件和其他资源。如果你打算使用或修改这个工具,你应该首先阅读项目中的README文件,了解...

    ga-dimension-report-generator:一个简单的 Web 应用程序,可为 GA 自定义维度生成可打印的报告

    用户只需提供相应的API密钥和配置信息,应用程序就能自动抓取数据并生成报告,极大地减少了手动操作的时间成本。 三、使用流程 1. **配置**:首先,用户需要拥有一个有效的GA账户,并创建所需的自定义维度。然后,...

    daily-report-generator:我是生成每日工作报告的工具

    1. 安装与配置:下载"daily-report-generator-master"压缩包,解压后根据说明文档配置个人的工作平台账号和报告参数。 2. 数据同步:运行工具,它会自动从关联的应用中抓取数据。 3. 生成报告:选择报告样式和内容,...

    Uber-Account-Generator-Script:使用Selenium生成随机Uber驱动程序帐户的脚本

    Uber-Account-Generator-Script 是一个基于Python和Selenium库的项目,其主要功能是自动生成Uber驱动程序的随机账户。这个脚本的运用场景可能包括模拟用户行为、测试平台兼容性或进行数据研究等。下面我们将深入探讨...

    python-screenshot-generator:应用程序从使用PythonDjango和Selenium构建的网站生成屏幕截图

    【Python屏幕截图生成器】是一个基于Python和Django框架的应用程序,它利用Selenium库来自动化从网页抓取屏幕截图的过程。这个项目的核心目标是提供一个便捷的工具,用于快速、高效地捕获网站的视觉表示,这对于网页...

    分析Nutch的工作流程

    Nutch的工作流程主要包括以下几个步骤:构建初始URL集合、注入(Inject)、生成抓取列表(Generate)、抓取页面(Fetch)、解析页面(Parse)、更新索引(Index)。接下来我们将详细地探讨每个步骤的具体实现。 ###...

    Baidu Sitemap Generator(for sae)

    "Baidu Sitemap Generator(for sae)" 是一款专为在新浪SAE上运行的WordPress博客设计的SEO工具,它能够自动生成并更新百度Sitemap,帮助网站提升在百度搜索结果中的可见性,同时简化了在SAE环境中进行SEO优化的流程...

    我的博客Hexo

    - 通过安装如`hexo-generator-sitemap`生成网站地图帮助搜索引擎抓取你的博客。 - `hexo-seo-kit`等插件可以帮助你优化标题、描述和Open Graph信息,提升社交媒体分享的呈现效果。 7. **持续集成与自动化** - ...

    nutch流程解析.doc

    Nutch 的工作流程主要包括六个主要步骤:Injector、Generator、Fetcher、ParseSegment、CrawlDb 更新和 LinkDb 更新,最后由 Indexer 创建索引。下面将对每个步骤进行详细解释。 1. Injector: Injector 是 Nutch ...

    使用RSS订阅喜欢的微博博主

    4. XML和RSS Feed生成:使用feed-generator等模块将抓取的数据转换为符合RSS规范的XML格式。 5. IFTTT(If This Then That):自动化服务,可将不同应用和服务连接起来,实现自动化工作流程。 6. Git和版本控制:...

    Nutch 1.2源码阅读

    当执行`crawlurls–dirmydir–depth5–threads5–topN100`命令时,Nutch的抓取流程便由此类启动。其中,`mydir`指定数据存储路径,包括crawlDb、segments和indexes等关键目录。 在Crawl类的`main()`方法中,首先...

    使用sitemap_generator来为rails网站生成Sitemap

    这有助于搜索引擎蜘蛛快速找到并抓取网站上的所有页面,尤其对于大型或结构复杂的网站来说,Sitemap更是必不可少。 `sitemap_generator` gem 是一个适用于Ruby on Rails框架的开源工具,它能够自动扫描你的Rails...

    Business Lead Generator Tool - 5-crx插件

    4. **自动化工作流程**:Business Lead Generator Tool - 5-crx可能包含自动化功能,如批量导出线索、集成CRM系统或设置提醒,以简化工作流程并提高效率。 5. **实时更新**:实时监测和更新业务线索的状态,确保...

    nutch crawl代码解析

    本文将解析 Nutch-0.9 版本中的 `Crawl` 类,它是 Nutch 抓取流程的起点。 `Crawl` 类位于 `org.apache.nutch.crawl` 包中,它包含了启动 Nutch 抓取程序的主要逻辑。`main` 函数是整个程序的入口点,它接收命令行...

    ApiToken Generator-crx插件

    **ApiToken Generator-crx插件** 是一个专为服务身份验证设计的浏览器扩展程序,尤其适用于葡萄牙语(巴西)用户。这个插件的核心功能是帮助用户从特定的URL中提取和生成API令牌,这些令牌在与Web服务进行交互时通常...

    quotes-data:使用来自不同API来源的作者抓取报价

    "quotes-data"项目正是一种专注于收集和整理引语数据的工具,它从多个API源抓取带有作者信息的报价,为用户提供丰富的灵感和智慧源泉。该项目采用灵活的编程语言和技术,如Node.js、JavaScript、JSON、Axios等,旨在...

    NUnitAsp Code Generator-开源

    在NUnitAsp Code Generator中,这两个文件可能用于从网页中抓取信息,例如HTML结构和控件细节,这些信息对于生成测试代码至关重要。它们使得工具能够模拟浏览器的行为,获取网页的动态内容,这对于测试Web应用程序的...

    nutch-param-set

    Fetcher 负责根据 Generator 生成的任务列表进行网页的实际抓取工作。这是爬虫工作中最耗时的步骤之一。 **参数设置:** ```java Generator.main(null); String[] params = new String[3]; params[0] = "crawldb/...

Global site tag (gtag.js) - Google Analytics