1.爬取微博热搜top50的相关信息存入exacl表格中 2.将爬取的热点进行分词,统计分词频率,做词云可视化分析 3.进行热点的热度区间分析,时间线分析,类型类别分析
采用 cookie 拟登陆来获取访问许可,使用正则表达式来进行微博热搜信息的爬取,爬取信息主要有时间、排名、热搜内容、热度、类型类别。之后通过 xlwt 库中的Workbook 创建 exacl 表格,用 book 对象调用 add_sheet 方法来建立一张 sheet 表,利用循环列表的方式将数据插入 exacl 表格中并保存 部分实现代码如下:
定义文件保存的目录,找到文件路径下的所有表格名称,保存到列表,拼接文件的路径,读取文件的数据到 Dataframe,存入新的列表,将 Dataframe 合并存入新的exacl 文件(实现同一文件夹中exacl文件的合并) 部分实现代码如下:
使用 pd.read_excel 读取微博热搜,用 usecols 参数选择读取 exacl 表第三列,也就是微博热搜标题,将热搜标题存入一个列表中,用 join 函数将列表转化为字符串,使用 jieba.lcut 进行分词,对分词进行处理去掉空格、单个字符。然后统计分词频率输出前二百的分词,使用 WordCloud 库进行词云制作。 部分实现代码如下
代码运行结果如下
统计表格中的数据总数,将数据从表格中取出,对热度进行 if 判断来划分区间。对时间线的分析主要是根据每隔一段时间抓取的前 50 热搜榜,判断不同时间热搜榜前五十的变化来进行时间线的分析,热搜类型是和热度在同一列下,将热搜类型与热度做以个正则表达式,只匹配汉字或数字进行提取,若没有提取到类型则输出未知,最后进行词频统计,来统计那些类型热度比较高;类别统计是判断新出现的热搜有多少,爆火的和热门的热搜有多少 部分实现代码如下
代码运行结果如下