通过模拟登陆的方式抓取指定微博用户的微博内容,进行分析/可视化
- Python 2.X
- MySQL 5.5
- main.py:主函数
- wap_weibo_crawler.py:模拟登陆新浪微博(wap站),无需验证码,静态爬取
- sina_weibo.py:新浪微博类,其实例代表一个特定用户的新浪微博
- content_parsing_tool.py:内容解析/信息提取
- seed_user_db.py:数据库交互:种子用户(爬取目标用户)数据表
- 爬虫
- 在获取页面时,小几率出现未能加载出微博内容的情况,导致漏掉部分微博
- 内容提取/解析
- 优化对微博内容中存在的超链接的解析
- 提高图片抓取的准确率
- 分组可见信息的提取
- 转发信息的解析
- 地理位置提取
- 加入账号本身微博信息的提取
- 原图/多图
- 评论内容
- 粉丝
- 可视化
- 用户微博时间线的分布(还有待完善)
- 24小时内,所有微博时间点分布的统计
- 以所有微博为横轴,利用柱状图/散点图展示评论/点赞数量的分布
- 饼图,展示各微博类型占比,纯文字/带图/转发
- 微博客户端来源,官方客户端/网页/第三方客户端,饼图展示占比,时间线展示变迁
- 数据库
- 建立一张数据表,存储一定数量的微博小号账号/密码信息,作为模拟登陆的入口,降低风险
- 建立一张数据表,用于存储seed user,即爬取的目标用户
- 建立一张数据表,用于存储seed user information,每条数据对应一个用户的基本信息
- 建立一张数据表,用于存储微博条目,每个用户对应一张表,利用user id进行链接
- 代码规范
- 添加docstring,与# 相区分
- 结构规范化,包->模块
- 变量名删除类型信息
- 规范化包/模块命名和引用
- 其他
- 引入pd.DataFrame来作为保存微博条目的数据结构
- matplotlib全局显示中文