JAVA网络爬虫WebCollector深度解析——爬虫内核
来源:互联网 发布:怎样重新激活淘宝店铺 编辑:程序博客网 时间:2024/05/20 11:47
WebCollector爬虫官网:https://github.com/CrawlScript/WebCollector
技术讨论群:250108697
如何将爬虫内核导入自己的项目?
1.进入爬虫官网http://crawlscript.github.io/WebCollector/,下载压缩包,解压。
2.解压后找到“webcollector-版本号-bin.zip”,解压。
3.将“webcollector-版本号-bin.zip”解压后所有的jar,导入你的项目,即可使用爬虫内核。
爬虫内核的demo
进入“webcollector-版本号-bin.zip”解压后所在的文件夹(Windows用资源管理器,Linux用命令行)。
Windows:双击start.bat
Linux:执行sh start.sh
即可看到一个简单的DEMO,这个DEMO可以爬取整站的网页(包括图片、文件、JS、CSS),并按照网站原来的文件路径存储到本地。
图中是用这个DEMO下载合肥工业大学官网上所有的网页和文件。
爬虫内核提供哪些功能?
1.一套可扩展框架。对于大多数爬虫开发者来说,需要一个稳定、易懂的框架。基于框架去做自己的爬虫。
2.爬虫所需的基本类库。
1)html源码获取(文件下载)。
2)文件操作。
3)html源码解析(抽取)。
4)线程池。
5)URL生成器(遍历器)。
6)消息机制(各组件通信)。
基本类库:
在介绍爬虫框架之前,先介绍一下基本类库。
如果您不想使用我们的爬虫框架,只是想做一个基本的爬虫或者网页信息收集产品,或者您只是想做一个简单的HTML源码获取器,可以导入WebCollector的jar包,直接调用爬虫内核提供的类库。
爬虫框架:
爬虫框架会在后续文章中详细介绍。这里只介绍它与其他爬虫框架的一些区别。
WebCollector与其他爬虫框架最大的区别在于它提供了“消息机制”和“URL生成器”。
1)消息机制:
以往的大型爬虫框架,Heritrix、Nutch、Crawler4j,都是通过插件或者重载代码的机制,去实现对爬取信息的处理(解析、保存)。WebCollector提供了一套强大的消息机制(Handler)。
例如Crawler4j,如果你需要定制爬取时对每个页面的操作,需要重载WebCrawler类中的相关函数,并且不能在运行时定制,必须在编译前就定制一个继承WebCrawler类的类,细节请看:http://code.google.com/p/crawler4j/
但是对于WebCollector,你只需要定制一个Handler
Handler gene_handler = new Handler() { @Override public void handleMessage(Message msg) { Page page = (Page) msg.obj; System.out.println(page.html); } };将这个handler传给遍历器即可。
2)URL生成器:
Heritrx、Nutch、Crawler4j只提供广度遍历的网页遍历方式,而且很难通过他们自带的插件机制去修改遍历方式。所以WebCollector里提供了URL生成器(Generator),自定义URL生成器可以完成各种形式的URL遍历(尤其是对于深网爬取,如微博、动态页面)。
- JAVA网络爬虫WebCollector深度解析——爬虫内核
- JAVA网络爬虫WebCollector深度解析——爬虫内核
- WebCollector内核解析—如何设计一个爬虫
- WebCollector内核解析—如何设计一个爬虫
- Java爬虫-WebCollector
- JAVA爬虫 WebCollector
- JAVA爬虫WebCollector
- JAVA爬虫 WebCollector
- 利用WebCollector爬虫内核定制自己的爬虫——任务生成器Generator
- JAVA爬虫WebCollector 2.x入门教程——基本概念
- JAVA爬虫WebCollector 2.x入门教程——基本概念
- Webcollector爬虫
- JAVA爬虫WebCollector教程列表
- WebCollector java爬虫使用笔记
- WebCollector java爬虫使用笔记
- Java WebCollector爬虫采集数据
- WebCollector下载整站页面(JAVA网络爬虫)
- Java之网络爬虫WebCollector+selenium+phantomjs(一)
- 多线程GCD的使用
- mfc的dll添加
- POJ 2635 The Embarrassed Cryptographer
- UVA 297 四叉树合并 Quadtrees
- Rabbitmq的安装配置
- JAVA网络爬虫WebCollector深度解析——爬虫内核
- 问题error LNK2001: unresolved external symbol "public: static class解决
- 经验总结20--C#模拟WEB请求
- js密码强度验证
- POJ 2485 Highways 最小生成树
- VMProtect SDK+ASProtect SDK保护
- 2014.7读书笔记
- android 中的context
- erlang 学习心得