文档章节

nutch修改parse-html爬博客的标题

cjun1990
 cjun1990
发布于 2015/04/29 10:12
字数 220
阅读 43
收藏 0

修改parse-html的HtmlParser类的getParse方法

utils.getText(sb, root); // extract text
      if(TextExtract.filterUrl(baseUrl))
      {
       TextExtract te = new TextExtract(baseUrl, page.getContent().array(), "utf-8");
       te.doExtract();
      }
      text = sb.toString();
      sb.setLength(0);

下面就是对博客标题抽取

package org.apache.nutch.parse.html;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.jsoup.Jsoup;
public class TextExtract {
 private String url; 
 private byte[] connent;
 private String encode;
 public TextExtract(String url, byte[] content, String encode) {
  this.url = url;
  this.connent = content;
  this.encode = encode;
 }
 public static boolean filterUrl(String url)
 {
  Pattern pattern = Pattern.compile("^http://my.oschina.net/cjun/blog/[0-9]+$");
  Matcher matcher = pattern.matcher(url);
  boolean b= matcher.matches();
  return b;
 }
 public void doExtract() {
  try {
   Document doc = Jsoup.parse(new String(this.connent, this.encode));
   String title = doc.head().select("title").text();
   try {
    FileWriter fw = new FileWriter("/apps/title.txt", true);
    fw.write(url + "#" + title + "\n");
    fw.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  } catch (UnsupportedEncodingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

 修改这2部分,然后运行nutch就可以抓取到博客的标题了。

参考文章:Nutch二次开发之定制爬取网站信息

 

© 著作权归作者所有

cjun1990
粉丝 35
博文 371
码字总数 183914
作品 0
深圳
程序员
私信 提问
加载中

评论(0)

基于Hadoop2.7、Nutch2.3.1、Solr4.6构建搜索引擎

常规数据处理 安装Hadoop core-site.xml hdfs-site.xml yarn-site.xml 其他要注意的地方:slvaes文件 安装Hbase 其他:JAVA_HOME regionservers Nutch安装 编译 解压,修改ivy/ivy.xml全局修...

o0无忧亦无怖
2016/05/28
113
0
nutch爬取结果异常问题

爬取100个手机域名,nutch爬取结果:共注入200个url,在fetch阶段发现16个未知主机错误,在parse阶段发现72个无法解析错误。 错误太不正常了,是什么原因呢,另附agent.name和agent.version...

极雪寒冬
2015/08/11
132
0
我的架构演化笔记 12:Nutch1.7 构建互联网爬虫

Nutch是一个比较流行的互联网爬虫。 现在的需求是:用Nutch爬虫构造网络爬虫,并且对网页内容进一步分析提出需要的字段。 ~~~ 来看看这个类有什么! ParseSegment.java里的函数 public void ...

强子哥哥
2014/06/24
847
0
《Nutch笔记》Nutch-1.7+solr-4.7集成

一、下载安装nutch 下载地址 http://apache.fayea.com/apache-mirror/nutch/1.7/apache-nutch-1.7-bin.tar.gz 安装 [root@centos data]# cd /data/[root@centos data]# mkdir nutch[root@ce......

燃點
2014/03/21
1.8K
0
Nutch学习笔记13---以某网站为例写解析插件

编写自己的HtmlParseFilter---sohu 1 进入到文件夹 $NUTCH_HOME/src/plugin mkdir htmlparsefilter-sohu 2 按照下面的结构建立目录和文件 htmlparsefilter-sohu/ plugin.xml build.xml ivy.x......

强子哥哥
2014/07/29
0
11

没有更多内容

加载失败,请刷新页面

加载更多

Vue组件通信应知必知

前言 本章我们来学习Vue组件通信中的可以算是所有内容,在此之前,您最好掌握Vue的基础语法、指令等内容,同时也建议您查看我其他的文章进行补充。 组件通信 父子组件关系 通过上图顺带给大家...

涂老师
12分钟前
44
0
按下时会两次调用UILongPressGestureRecognizer

我正在检测用户是否已按下2秒钟: UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self......

javail
16分钟前
38
0
图示JVM工作原理

JDK,JRE,JVM的联系是啥? JVM Java Virtual Machine JDK Java Development Kit JRE Java Runtime Environment 看上图官方的介绍讲的很清楚 JVM的作用是啥? JVM有2个特别有意思的特性,语言...

erlieStar
24分钟前
53
0
webpack 阶段回顾 之 webpack-dev-server

webpack-dev-server是一个让我们可以模拟线上环境进行项目调试的工具 主要功能有: 路径重定向 浏览器中显示编译错误 接口代理 如解决跨域 热更新 使用步骤 安装webpack-dev-server 配置dev...

东东笔记
49分钟前
54
0
sql按任意时间段分组统计

任意时间序列数据都可以按时间分组。 timestamp 为时间戳。 按每五分钟统计日志的数目 select floor(cast(logs.timestamp as int) / 60 / 5) as dt, count(logs.id)from ( selec...

Mr小Z
55分钟前
72
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部