一、功能设计
开始开发之前我们先对本文的scrapy微博爬虫工程进行一个功能的设计,包含的功能模块如下:
功能模块 | 具体描述 |
---|---|
微博文章爬取 | 根据关键词、时间范围等参数爬取微博文章,获取用户名、ID、微博mid、微博内容、点赞、转发、评论等数据 |
微博评论爬取 | 通过微博评论接口爬取文章相应的评论内容 |
重复过滤 | 通过管道过滤掉重复性的微博(mid重复) |
情感分析 | 通过管道对微博的文本进行情感分析,分为积极、中性和消极,基于bert利用深度学习进行情感分析 |
保存数据库 | 爬取结果保存到MySQL数据库中 |
二、 管道设计
在爬虫公工程内设计了3个管道,首先是重复性检查,其次是情感分析,最后是保存MySQL,可以根据需要激活或者禁用这些管道。
三、 数据库设计
先给出爬取微博文章的表
CREATE TABLE `tb_weibo` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',`mid` varchar(20) NOT NULL,`bid` varchar(12) NOT NULL,`user_id` varchar(20) DEFAULT NULL,`screen_name` varchar(30) DEFAULT NULL,`text` varchar(2000) DEFAULT NULL,`article_url` varchar(100) DEFAULT NULL,`topics` varchar(200) DEFAULT NULL,`at_users` varchar(1000) DEFAULT NULL,`pics` varchar(3000) DEFAULT NULL,`video_url` varchar(1000) DEFAULT NULL,`location` varchar(100) DEFAULT NULL,`created_at` datetime DEFAULT NULL,`source` varchar(30) DEFAULT NULL,`attitudes_count` int(11) DEFAULT NULL,`comments_count` int(11) DEFAULT NULL,`reposts_count` int(11) DEFAULT NULL,`retweet_id` varchar(20) DEFAULT NULL,`user_authentication` varchar(100) DEFAULT NULL,`keywords` varchar(100) DEFAULT NULL,`ip` varchar(100) DEFAULT NULL,`label` varchar(100) DEFAULT NULL COMMENT '情感分析',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=254 DEFAULT CHARSET=utf8;
参考项目
weibo-search 非常好的一个项目,可以下载直接爬取数据的,本文的爬取工程就是在此基础上进行扩展的。