scrapy 爬取微博(四)【最新超详细解析】: 设计篇
一、功能设计
开始开发之前我们先对本文的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 非常好的一个项目,可以下载直接爬取数据的,本文的爬取工程就是在此基础上进行扩展的。