文章目录
- webporter:Java 爬虫的实操样本
- 1、这玩意儿是干嘛的
- 2、为什么要用它
- 3、仓库结构
- 4、跑起来需要什么
- 5、怎么用
- 6、适合谁
webporter:Java 爬虫的实操样本
webporter 在 GitHub 上拿到 2.7K Star 了。
作者基于 webmagic 爬虫框架封装了一套完整流程:数据爬取、持久化、可视化展示一条龙。仓库里现成有知乎用户数据的爬虫示例,跑下来能拿到 60 多万条用户数据。
1、这玩意儿是干嘛的
就一件事:演示怎么用爬虫框架把一个完整的数据采集流程跑通。
爬数据这个事,Python 阵营的工具一抓一大把,Java 这边相对冷清。webporter 选了国产的 webmagic 做底座,把模块化设计、JSON 配置、多线程、Elasticsearch 批量导入这些环节都串起来,做成一个能跑的样本工程。
要注意它是样本不是框架,作者自己也在 README 里强调:生产环境请直接用 webmagic 或 scrapy。webporter 偏休闲性质,定位是教学样例。
2、为什么要用它
写爬虫的人多半经历过这种节奏:抓数据本身不难,难的是后边那一坨。数据落盘、去重、建索引、做可视化,每一步都得自己接一遍。看完教程还是不知道怎么拼起来。
webporter 把这条链路完整展示了一遍。从原始 HTTP 响应到 Elasticsearch 索引,再到 Kibana 的可视化图表,中间每一步的代码都在仓库里。想看怎么把 60 万条用户数据导入 ES 并画个行业分布饼图,这就是个现成的参考。
3、仓库结构
三个核心模块,分工清晰:
- webporter-core:基础模块,自动配置和抽象逻辑都在这里
- webporter-data-elasticsearch:把数据灌进 ES 的工具模块
- webporter-collector-zhihu:知乎用户爬虫的业务模块,完成爬取和持久化
整条链路顺着这三个模块看下来,基本能摸清一个 Java 爬虫应用的骨架。
4、跑起来需要什么
环境清单:
- JDK 1.8+
- Maven 3.3+
- Elasticsearch 5.0.1
- Kibana 5.0.1
ES 和 Kibana 这两个版本号比较老,新机器上装的话要注意兼容。作者博客里有篇 Elasticsearch 5.0 安装使用教程,跟着走能省点事。
5、怎么用
以爬知乎用户数据为例,三步走。
第一步改配置文件,位置在webporter-collector-zhihu/src/main/resources/config.json。只有两处要动:authorization是登录知乎后浏览器抓包提取的请求头,base_dir是数据落盘的根目录。
第二步启动爬虫,依次跑ZhihuFolloweePageProcessor和FolloweeUploader这两个类的 main 方法。前者负责下载用户信息,后者把数据灌进 ES。注意这俩是串行的,别同时启动。
第三步可视化,Kibana 里用 Visualize 拖一拖就能出图。作者博客里有篇《爬取知乎60万用户信息之后的简单分析》可以参考。
6、适合谁
- 想用 Java 做爬虫但不知道怎么搭完整流程的人
- 在做 ES 数据导入、想找个能跑的样本对照的开发者
- 想看 60 万量级数据怎么在 Kibana 里做聚合分析的初学者
定位是教学样本不是生产工具,按这个预期来看就比较合适。
看 60 万量级数据怎么在 Kibana 里做聚合分析的初学者
定位是教学样本不是生产工具,按这个预期来看就比较合适。