webporter:Java 爬虫的实操样本

文章目录

  • 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是数据落盘的根目录。

第二步启动爬虫,依次跑ZhihuFolloweePageProcessorFolloweeUploader这两个类的 main 方法。前者负责下载用户信息,后者把数据灌进 ES。注意这俩是串行的,别同时启动。

第三步可视化,Kibana 里用 Visualize 拖一拖就能出图。作者博客里有篇《爬取知乎60万用户信息之后的简单分析》可以参考。

6、适合谁

  • 想用 Java 做爬虫但不知道怎么搭完整流程的人
  • 在做 ES 数据导入、想找个能跑的样本对照的开发者
  • 想看 60 万量级数据怎么在 Kibana 里做聚合分析的初学者

定位是教学样本不是生产工具,按这个预期来看就比较合适。

看 60 万量级数据怎么在 Kibana 里做聚合分析的初学者

定位是教学样本不是生产工具,按这个预期来看就比较合适。