MagicToe

基于webmagic + springboot + mybatis的Java爬虫,使用Echarts进行数据可视化分析,提供了从爬虫获取数据到数据持久化、数据可视化分析以及构建简单的代理池等一整套解决方案模板。

  • Owner: tianshb/MagicToe
  • Platform:
  • License::
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

MagicToe

MagicToe是一个基于Java爬虫框架WebMagic的Java爬虫实战案例,MagicToe提供了从获取数据到数据持久化、可视化分析以及构建简单的代理池等一系列完整流程,旨在为初涉Java爬虫的程序员提供一个参考教程和一整套完整的解决方案。

仓库目录

  • hupu-spider:爬虫功能实现模块,使用WebMagic + SpringBoot + MyBatis基础架构,NLP工具包是Ansj中文分词,定制抽取逻辑,将爬取的数据持久化到MySQL数据库中,本仓库中的代码示例爬取的是虎扑步行街。
  • data-analysis:数据分析及可视化模块,使用Spring + SpringMVC + MyBatis的基础架构,数据可视化采用的前端技术是 jsp + Echarts
  • ip-spider(可选):爬取代理网站模块,技术选型同hupu-spider,将代理网站上的免费代理地址爬取到本地数据库中,实现一个简单的IP池,以供hupu-spider作为代理使用。

QuickStart

爬虫模块环境准备:

  • JDK 1.8+
  • maven 4.0.0+
  • webmagic 0.7.3+
  • ansj_seg 5.1.1+
  • springboot 1.5.7+
  • mybatis 1.3.1+
  • mysql 5.1.21+

运行爬虫:
以爬取虎扑步行街的帖子、用户和评论为例。

  1. 初始化数据库
    在本地MySQL中创建自己的schema,执行初始化数据库的脚本 hupu-spider/src/main/resources/db.sql ,并根据自己的数据库信息修改配置文件 hupu-spider/src/main/resources/application.yml 中的数据源信息。
  2. 启动爬虫
    hupuspider通过URL请求的方式运行,在浏览器中键入 localhost:8080/(默认端口为8080,如果遇到端口冲突,可以在配置文件 hupu-spider/src/main/resources/application.yml 中修改端口),爬虫即可开始运行了。
  3. 运行数据可视化模块
    将数据爬取到数据库中后,直接在Tomcat中运行data-analysis模块即可,通过在浏览器中输入不同的URL可以得到不同的图表,具体请查看 data-analysis/src/main/java/com/crow/web/EchartsController.java

效果展示

以虎扑用户的地域分布为例:

更多详细的分析请参考我的博客《数据不说谎:用网络爬虫探秘虎扑步行街》

TODO

  • 使用Redis分布式队列实现分布式爬取。
  • 使用Quartz实现定时更新数据。

联系作者

Main metrics

Overview
Name With Ownertianshb/MagicToe
Primary LanguageJava
Program languageJava (Language Count: 1)
Platform
License:
所有者活动
Created At2017-10-25 08:09:44
Pushed At2017-10-26 07:55:00
Last Commit At2017-10-26 15:54:23
Release Count0
用户参与
Stargazers Count364
Watchers Count29
Fork Count155
Commits Count15
Has Issues Enabled
Issues Count3
Issue Open Count3
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private