Nutch 2.2.1+MySQL+Solr4.2实现网站内容的抓取和索引
来源:互联网 发布:3dmax软件下载 编辑:程序博客网 时间:2024/05/21 17:32
在local目录下创建 search。把apache-nutch-2.2.1-src.tar.gz 上传到search 目录中 解压,然后再数据库中执行以下sql。
手动创建数据库nutch和数据表webpage,其中webpage的表结构如下:
CREATE TABLE `webpage` (
`id` varchar(767) CHARACTER SET latin1 NOT NULL,
`headers` blob,
`text` mediumtext,
`status` int(11) DEFAULT NULL,
`markers` blob,
`parseStatus` blob,
`modifiedTime` bigint(20) DEFAULT NULL,
`score` float DEFAULT NULL,
`typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
`baseUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL,
`content` mediumblob,
`title` varchar(2048) DEFAULT NULL,
`reprUrl` varchar(512) CHARACTER SET latin1 DEFAULT NULL,
`fetchInterval` int(11) DEFAULT NULL,
`prevFetchTime` bigint(20) DEFAULT NULL,
`inlinks` mediumblob,
`prevSignature` blob,
`outlinks` mediumblob,
`fetchTime` bigint(20) DEFAULT NULL,
`retriesSinceFetch` int(11) DEFAULT NULL,
`protocolStatus` blob,
`signature` blob,
`metadata` blob,
`batchId` varchar(500) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Nutch的安装与配置
获取nutch 2.2.1:从官网
wget http://archive.apache.org/dist/nutch/2.2.1/apache-nutch-2.2.1-src.tar.gz
下载,然后解压至本地安装目录,local/search/ 如本地根目录为${NUTCH_HOME};2) 配置nutch对mysql的支持,修改${APACHE_NUTCH_HOME}/ivy/ivy.xml文件,分别:
l 将以下行的注释取消
<dependency org=”mysql” name=”mysql-connector-Java”rev=”5.1.18″ conf=”*->default”/>
l 修改以下行
从默认的<dependencyorg="org.apache.gora" name="gora-core" rev="0.3"conf="*->default"/>,改成<dependencyorg="org.apache.gora" name="gora-core"rev="0.2.1"conf="*->default"/>
l 将以下行的注释取消
<dependency org="org.apache.gora"name="gora-sql" rev="0.1.1-incubating"conf="*->default" />
注:上述第2和第3项,如果按默认的不做修改,将会在抓取网页时遇到以下错误。
Exception in thread “main” Java.lang.ClassNotFoundException:org.apache.gora.sql.store.SqlStore
3) 数据库连接配置
编辑${NUTCH_HOME}/conf/gora.properties文件,注释掉默认的数据库连接配置,同时添加以下配置内容:
###############################
#Default MySQL properties #
###############################
gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver
gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true
gora.sqlstore.jdbc.user=xxxx(MySQL用户名)
gora.sqlstore.jdbc.password=xxxx(MySQL密码)
4) 数据表映射配置
不用配此项,执行上面的sql就可以了
5) 修改nutch-site配置文件
{apache-nutch-2.2.1}/conf
然后修改nutch-site内容,包括:
l 添加http.agent.name的值
<property>
<name>http.agent.name</name>
<value>YourNutchSpider</value>
</property>
l 在文件末尾添加以下内容
<property>
<name>http.accept.language</name>
<value>ja-jp,en-us,en-gb,en;q=0.7,*;q=0.3</value>
<description>Value of theAccept-Language request header field.
This allows selecting non-Englishlanguage as default one to retrieve.
It is a useful setting for search enginesbuild for certain national group.
</description>
</property>
<property>
<name>storage.data.store.class</name>
<value>org.apache.gora.sql.store.SqlStore</value>
<description>TheGora DataStore class for storing and retrieving data.
Currently the following stores areavailable:.
</description>
</property>
<property>
<name>parser.character.encoding.default</name>
<value>utf-8</value>
<description>Thecharacter encoding to fall back to when no other information
isavailable</description>
</property>
<property>
<name>generate.batch.id</name>
<value>*</value>
</property>
6、修改 ivysettings.xml中 为,因为原来的地址 build下载包的时候比较慢
<property name="repo.maven.org"
value="http://maven.aliyun.com/nexus/content/groups/public/"
override="false"/>
7、在根目录下执行 ant runtime 就可以了。
网页抓取配置
1) 设置抓取的网站
cd ${NUTCH_HOME}/runtime/local
mkdir -p urls
echo 'http://www.tianya.cn' >urls/seed.txt
2) 执行爬取操作
bin/nutch crawl urls -depth 3 -topN 5
执行完在mysql中即可查看到爬虫抓取的内容,如下图:
- Nutch 2.2.1+MySQL+Solr4.2实现网站内容的抓取和索引
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- 大数据——ubuntu下Nutch 2.2+MySQL实现网站内容的抓取和索引(下集)
- 关于windows下Nutch 2.2+MySQL实现网站内容的抓取的搭建步骤
- Nutch抓取数据内容的详解
- Nutch抓取数据内容的详解
- [Nutch]Nutch抓取过程中生成的目录内容分析
- curl 实现抓取网站内容
- [wordpress搬家]nutch的二三事 — 2.2.1版本抓取到mysql中
- Nutch内容过滤的实现
- 使用Nutch和Solr抓取并索引网页
- 转:使用Nutch和Solr抓取并索引网页
- 使用Nutch和Solr抓取并索引网页
- 【Nutch】Nutch的抓取流程
- 读取Nutch抓取文件中的Segments中Parse_Text的内容
- Nutch的配置以及动态网站的抓取
- [BZOJ]2004: [Hnoi2010]Bus 公交线路 状态压缩DP+矩阵乘法
- 《orange's:一个操作系统的实现》学习过程中问题的解决(持续更新)
- listview侧滑删除
- iOS关于图片问题的警告
- Django中如何完成easyUI 表格数据的增删改?
- Nutch 2.2.1+MySQL+Solr4.2实现网站内容的抓取和索引
- 【Hibernate】对象的状态
- HDU 1358 Peroid(KMP和循环节)
- 学习阶段总结(1)
- 通过java客户端给K8s节点机打标签
- 通过getIdentifier获取资源id
- JSONObject,JSONArray,Map,String之间转换
- 关于redis启动时报错:Could not get a resource from the pool。
- 英语666