segmentfault 线下活动数据分析

2199 查看

开始说明

  • 目标:练习爬虫

  • KeyWord:python3.5 scrapy BeautifulSoup4 mysql flask
    echart3

segmentfault 上的很多线下技术交流活动都很好,我自己也参加过一些,就比较好奇这些活动都有哪些特点,比如说:

  • 一般在星期几举办?

  • 什么月份比较多?

  • 哪个城市比较多?

  • 一般都是哪些类型的?

主要分两个部分:爬虫抓取部分数据展示部分

爬虫抓取部分

主要思路:

  1. 确定要抓取的数据有哪些。
    包括:活动名称、举办时间(日期、星期)、城市、活动目前状态等等。

  2. 确定抓取多少页。
    一直抓到页面上没有「下一页」按钮为止。

于是,写了个简单的爬虫把这些数据都拿到手,分析了一下。

实施步骤:

1.分析页面链接和内容,确定要抓取的内容


这里主要是结合 BeautifulSoup 来确定数据;

2.创建数据表

确定要抓取的数据后存储在 Mysql 中,语句如下:

CREATE TABLE `blog`.`<table_name>` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(100) NOT NULL,
    `c_date` varchar(20) NOT NULL,
    `week` varchar(8) NOT NULL,
    `week_number` int(11) NOT NULL,
    `city` varchar(20) NOT NULL,
    `icon` varchar(100) NOT NULL,
    `status` varchar(10) NOT NULL,
    `detail` varchar(100) NOT NULL,
    `join_link` varchar(100) NOT NULL,
    `link` varchar(100) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=`InnoDB` AUTO_INCREMENT=1708 DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci ROW_FORMAT=COMPACT CHECKSUM=0 DELAY_KEY_WRITE=0;

3.编码实现

使用 scrapy 框架,代码在这:爬虫部分代码

展示部分

使用百度的 echart3 图表工具,web 框架使用 flask
代码在这里:数据展示部分代码
下图是我想到的几种情况分析:

以上!