分享

nutch抓取网页如何提取正文信息

lihy114 发表于 2015-10-16 17:08:01 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 14835
用nutch抓取互联网上的网页信息,抓取的content字段,包含了当前网页的所有内容;但是我想只取出正文部分的信息,这个应该如何处理呢

已有(5)人评论

跳转到指定楼层
YWX 发表于 2015-10-16 19:51:02
我也有同样的需求 ,楼主多交流
回复

使用道具 举报

langke93 发表于 2015-10-16 20:53:15
YWX 发表于 2015-10-16 19:51
我也有同样的需求 ,楼主多交流

好像有处理插件
  1,从segment中读取<url, CrawlDatum>,将它放入相应的队列中,队列以queueId为分类,而queueId是由 协议://ip 组成,在放入队列过程中,
        如果不存在队列则创建(比如javaeye的所有地址都属于这个队列:http://221.130.184.141)  --> queues.addFetchItem(url, datum);
    2,检查机器人协议是否允许该url被爬行(robots.txt) --> protocol.getRobotRules(fit.url, fit.datum);
    3,检查url是否在有效的更新时间里 --> if (rules.getCrawlDelay() > 0)
    4,针对不同协议采用不同的协议采用不同机器人,可以是http、ftp、file,这地方已经将内容保存下来(Content)。 --> protocol.getProtocolOutput(fit.url, fit.datum);
    5,成功取回Content后,在次对HTTP状态进行识别(如200、404)。--> case ProtocolStatus.SUCCESS:
    6,内容成功保存,进入ProtocolStatus.SUCCESS区域,在这区域里,系统对输出内容进行构造。 --> output(fit.url, fit.datum, content, status, CrawlDatum.STATUS_FETCH_SUCCESS);
    7,在内容构造过程中,调取内容解析器插件(parseUtil),如mp3\html\pdf\word\zip\jsp\swf……。 --> this.parseUtil.parse(content); --> parsers.getParse(content);
    8,我们现在研究html解析,所以只简略说明HtmlParser,HtmlParser中,会解析出text,title, outlinks, metadata。  
        text:过滤所有HTML元素;title:网页标题;outlinks:url下的所有链接;metadata:这东西分别做那么几件事情 首先检测url头部的meta name="robots" 看看是否允许蜘蛛爬行,
        其次通过对meta http-equiv refresh等属性进行识别记录,看页面是否需要转向。


出处:http://www.aboutyun.com/thread-15619-1-1.html
回复

使用道具 举报

轩辕依梦Q 发表于 2015-10-20 09:45:22
mark一下,以留备用
回复

使用道具 举报

lihy114 发表于 2015-10-29 10:26:25
langke93 发表于 2015-10-16 20:53
好像有处理插件
  1,从segment中读取,将它放入相应的队列中,队列以queueId为分类,而queueId是由 协 ...

非常感谢,前几天在忙其他事情,今天才看到
回复

使用道具 举报

snn123456 发表于 2015-11-4 17:32:56
mark一下,学习中...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条