分享好友 最新动态首页 最新动态分类 切换频道
Heritrix工具实现网络爬虫
2024-12-26 21:03

上次用的java相关知识实现了一个简单的网络爬虫,现在存在许多开源免费的爬虫工具,相对来说,可以很简单的获取网页数据,并写入到本地。

下面我就阐述一下我用Heritrix爬虫工具实现网页数据爬取

------>

目录

1、Heritrix文件配置

2、Heritrix服务器job配置

3、如何创建job并执行

4、有选择的爬取网页

5、总结

----->

 

1‘  基础文件配置

网上下载heritrix的压缩包,即可配置一个爬虫服务器,其核心使用的是Tomcat。

修改根目录下此文件,将.template去掉。

 

imxremote.password的文件变为只读(属性

注意:【如果是win7系统,需要将此文件的所有者改为当前用户,如图。

点击“高级”

点击“编辑”

 

 此处选择当前的用户,再点击”应用“,即可。

 

2’  服务器Job配置

执行bin目录下的heritrix.cmd命令,用来启动这个服务器必须在命令行下执行)。

 示例:首先进入该文件的bin目录下,启动命令为

heritrix.cmd  --admin=user:password

启动如果成功,显示窗口

启动成功之后,通过浏览器访问当前服务器的8080端口来准备进行数据采集。

即输入   localhost:8080/

进入之后首先输入你刚开始配置时设定的用户名和密码。

然后进入首页

此窗口可以看到一些选项,有三个选项是比较重要的

1)    Console:控制台,在这里可以监控当前的任务爬取状态

2)    Jobs:可以在这里建立新的爬取任务

3)    Profiles:配置爬取的属性,例如:爬取的总线程数

首先需要在profiles中自己建立一个自定义的爬取的属性配置。在Profiles选项内选择New Profile based on it

进入界面

 

 点击Modules

这里需要设置爬取时的参数类

例如:爬取的范围,下载后的保存类型,爬取时所要下载的文件类型等。

首先要注意一点,两个change必须要点一下,我当时就是忽略了这个导致job无法提交

之后你需要在此界面下面设置10个类,按我的图来(规则我就不解释了

之后,选择Settings进行一些其他属性的配置,此处要更改一个线程数(这个看你的电脑配置咯,之后再http-headers里面需要填写你的工具版本,ip地址以及个人邮箱这个主要是告诉网站管理者哪个帅锅在爬我的网页,当然,劝告一下,国外和国内一些大型的网站不要爬取,很容易被监测到也可能触犯到信息窃取

之后点击Finished会提示Profile modified,表示修改成功

 

3’  建立爬取任务并执行

Jobs选项,选择Based on a profile选项,然后选择刚刚配置的那个myprofile,在此处选择你需要爬取的网站,我选择的是新浪新闻的首页

然后点击submit job,如果两个箭头都显示才表示创建job成功,相反我有一个配置类的没有点击change下面一个箭头就会提示初始化错误

 

 此时你进入console点击Start就会开始执行任务

如果你要结束或者暂停任务,点击Terminate

此时线程在不断爬取数据,你不断的点击Refresh会发现在不断更新数据,然后爬取的文件会在heritrix的根目录jobs里面找到,所有数据存放位置在如下路径的mirror文件夹内

到此刻,网络爬取结束,如上就是这个工具的使用方法。

 4‘  如何有选择的爬取网页

测试时会发现,爬取的内容太杂,不一定都是我们想要的,因此我们需要对这个工具的源代码进行一些简单的调整。

首先要将heritrix的jar包备份解压

然后需要将heritrix-1.12.1.jar文件拷贝到一个项目,基于这个文件来进行配置。

自己编写好这个工具类。

编写好以后,需要将这个类打包到jar包里。使用class文件

之后修改modules下的Processor.options文件

将以下内容加入到这个文件中。

org.liky.utils.SinaNewsScheduler|SinaNewsScheduler

前半部分是包.类名,后半部分就是类名,中间用 | 分隔。

 

然后使用jar命令将包打到一起

jar包替换掉原有的包(可以把原有的做个备份留下,防止打包有问题无法恢复)。

重新启动heritrix,然后修改Profile的配置

此时,再次爬取新浪新闻的时候,只会提取链接含有指定字符串的网址,排除很多无关的链接。

 

 

总结

  相对来说,Heritrix工具来爬取网页数据是相当简单的,无需写代码就可以进行大量的数据收集。

  但是,与我上一篇博客《java实现网络爬虫》还是有些许不同

    首先在自由度上,手写的代码可以确认爬取的深度、排除无需爬取的网页、提取有用的数据

    其次在内容上很繁杂,很多无效的数据也收集了,而且爬取的网页会越来越多(当然,有一种修改配置的方法,写一个java代码限制爬取的网页,然后将该class文件放入heritrix的jar包(上述第四个标题,关于修改源代码我相信很多新手都会望而止步,而且多写java代码来实现网络爬虫,益处多多

    最后在下一步数据分析上,可能多一点麻烦,谁会乐意整理一堆繁杂纷乱的数据呢

  至此,我还是倾向于java代码实现网络爬虫,而且可以很方便的将数据收集到hadoop中,进行大数据的mapreduce进行分析。

  这样就相当于一个初步的大数据数据采集了。

    

最新文章
用尖端科技赋能低空城市起降场数智运行
转自:天津日报  “忽如一夜春风来,千树万树梨花开”。低空经济作为战略性新兴产业融合发展的新赛道,已成为推动社会经济创新发展的新引擎。城市起降场作为低空经济的主要基础设施之一,其数智运行程度直接影响了低空经济的整体运行水平
详解人工智能领域重大突破:GPT-3
英语原文:Exploring GPT-3: A New Breakthrough in Language Generation翻译:雷锋字幕组GPT-3是什么?我们讨论15亿参数的 Generative Pretrained Transformer-2(GPT-2)的延迟发布是否合理,似乎还是去年的事情。如果你觉得其实没过多久
,掌握这些技巧,让百度轻松收录你的网站内容
在当今数字化时代,拥有一个网站对于个人和企业来说至关重要,仅仅拥有一个网站是不够的,更重要的是让百度等搜索引擎收录你的网站内容,以便更多的人能够找到你的网站,怎样才能让百度收录网站内容显示呢?下面将为大家介绍一些实用的技巧
谷歌chrome浏览器2023安卓最新
谷歌chrome浏览器是一款快速、安全且功能丰富的网络浏览器,干净整洁的界面以及快速地浏览速度带给用户舒适的使用体验,多功能的特点使用户可以畅快的浏览互联网、享受便捷的上网体验。网页翻译 - 您可以轻松浏览任何语言的网页节省数据流
这些A股光存储概念股名单,你需要知道!(12月12日)
  据南方财富网概念查询工具数据显示,相关光存储概念股:  1、中电兴发002298:12月12日消息,中电兴发5日内股价上涨13.23%,该股最新报6.880元涨3.28%,成交7.58亿元,换手率16.78%。  公司于2020年2月19日晚间披露2019年度非公开
都江堰seo优化价格【百度都江堰】
文章都江堰seo优化价格【百度都江堰】由网友旧时月色投稿,希望给你工作学习带来帮助。在当今数字化时代,搜索引擎优化(SEO)对于企业和个人的在线存在至关重要,都江堰作为一个充满活力和发展潜力的城市,也有许多企业和个人希望通过 SEO
构建个人投资组合网站:从基础到进阶
在数字时代,个人投资组合网站成为展示工作成果、技能和专业身份的不可或缺的平台。构建这样的网站不仅可以增强职业形象,还能在求职和客户互动中发挥关键作用。本章将引导你从零开始,详细探讨构建个人投资组合网站的整
谷歌浏览器ipad版
谷歌浏览器ipad版是专门针对苹果ipad设备而开发的一款平板电脑浏览器,全新的外观融入了Material Design设计元素,图形更醒目、操作更流畅、触感更灵敏,能够带给用户流畅的上网体验。另外本款google chrome浏览器ipad版同时还具备网页翻译
连城网站排名优化费用是如何计算的?
连城目前的关键词排名方式有哪些?连城目前关键词排名主要分为竞价排名和自然排名。1、连城关键词自然排名,指的是通过各种搜索引擎优化(seo)方式,使您网站的关键词在搜索引擎自然排名中靠前。2、连城关键词竞价排名,通过对搜索引擎充
请问小红书如何设定推广目标以实现精准引流与品牌爆发?
小红书作为一个集社交、内容分享与电商于一体的平台,为品牌提供了广阔的营销空间。要实现精准引流与品牌爆发,设定明确的推广目标并制定相应的营销策略至关重要。以下是一份详细的小红书营销攻略:一、设定推广目标提升品牌知 名度:通过
相关文章
推荐文章
发表评论
0评