新浪微博数据爬取+js前端可视化
文件列表(压缩包大小 767.61K)
免费
概述
cnpm install npm start
博主男女分布图 分析维度:全部博主的男女对比 分析方式:散点图 分析内容:
博主地理位置分布热力图 分析维度:全部博主地域分布 分析方式:地图 分析内容: 微博使用人数在全国的分布情况,普遍在东部颜色较深; 各省微博使用的人数 博主个人维度 粉丝数、关注数和微博数 分析维度:微博数、关注数、粉丝数 分析方式:雷达图 分析内容:比较 全部博主的平均数 与 特定博主的情况 朋友关系拓扑图 分析维度:好友圈、好友拓扑 分析方式:关系图 分析内容: 博主的直接、间接好友的朋友有哪些人 博主的好友中男女分布 微博数日历图 分析维度:微博打卡情况 分析方式:日历图 分析内容: 挖掘特定博主在一年内的微博发布情况 日历图单元格内的点越大,表示当天微博数量越多 点击后还能看到当天所有微博出现的高频、关键词 微博热度折线图 分析维度:微博热度趋势 分析方式:折线图 分析内容: 博主微博的点赞、评论、转发数量的变化趋势; 每条微博的内容 微博词云图 分析维度:微博常用词 分析方式:词云图 分析内容: 博主的常用词分布,大小表示频度 博主的关注领域 微博发布时间分布图 分析维度:微博发布时间 分析方式:饼图、散点图 分析内容: 博主在周几的发布频率 博主在几点的发布频率 博主在周几的几点发布频率
前端代码结构 服务端代码结构 服务端API文档 获取博主列表 路由:GET /api/bloggers 请求参数:
[
{
"_id": "5c2f2381e5286e5170d6fa9d",
"id": "5878659096",
"name": "超话社区",
"sex": "男",
"birthplace": "北京",
"weibo_num": 2500,
"following": 1044,
"followers": 75880204
}
]
获取博主数量 路由:GET /api/bloggers/count 请求参数:
{
"count": 10500
}
获取单个博主基本信息
路由:GET /api/bloggers/:id
请求参数:返回数据:
{
"_id": "5c2f2381e5286e5170d6fa9d",
"id": "5878659096",
"name": "超话社区",
"sex": "男",
"birthplace": "北京",
"weibo_num": 2500,
"following": 1044,
"followers": 75880204
}
获取博主朋友列表 路由:GET /api/bloggers/:id/friends 请求参数:
返回数据:
[
{
"_id": "5c3830e23a0d0501b2b15f9d",
"friend_id": {
"_id": "5c2f5492e5286e1020d8ddf9",
"id": "5136362277",
"friends": [
{
"_id": "5c382e0c3a0d0501b2b0e63b",
"friend_id": {
"_id": "5c327921e5286e5de011e5bc",
"id": "5574029246",
"friends": [
{
"_id": "5c3831743a0d0501b2b17fa0",
"friend_id": "5c36154be5286e47bc26014a",
"id": "6540424837",
"name": "种草小海龟",
"followers": 2707217,
"sex": "女",
"birthplace": "广东"
}
],
"birthplace": "北京",
"followers": 2454415,
"name": "微博电商",
"sex": "男"
},
"id": "5574029246",
"name": "微博电商",
"followers": 2454415,
"sex": "男",
"birthplace": "北京"
},
],
"birthplace": "北京",
"followers": 16449291,
"name": "微博红包",
"sex": "男"
},
"id": "5136362277",
"name": "微博红包",
"followers": 16449291,
"sex": "男",
"birthplace": "北京"
}
]
获取博主微博列表 路由:GET /api/bloggers/:id/weiboContent 请求参数:
返回数据:
{
"contents": [
{
"tfidf": [
{
"_id": "5c3aa6c6338845026949e1a8",
"word": "鲁豫有约",
"weight": 27.801355304
}
],
"publish_content": "在@鲁豫有约 做过至少三次对话,鲁豫既有传统媒体人的责任跟态度,又能接收新鲜文化跟内容,每次都聊的很畅快#鲁豫有约18岁了#生日快乐",
"publish_location": "无",
"publish_time": "2019-01-05 15:01",
"like": 438,
"forward": 65,
"comment": 116,
"publish_tool": "iPhone 7"
}
],
"tfidf": [
{
"word": "AI",
"weight": 1056.5283876375188
},
{
"word": "偷笑",
"weight": 503.9408293195
},
]
}
获取平均粉丝数、关注数和微博数统计 路由:GET /api/statistic/average 返回数据:
{
"_id": null,
"avg_followers": 1954959.6494285713,
"avg_weibo_num": 6631.755142857143,
"avg_following": 512.3624761904762,
"max_followers": 182775632,
"max_weibo_num": 756859,
"max_following": 20000
}
获取性别分布统计 路由:GET /api/statistic/sex 返回数据:
[
{
"_id": "女",
"value": 5056,
"avg_followers": 1736109.3710443038,
"avg_weibo_num": 5647.630735759493,
"avg_following": 450.856210443038,
"max_followers": 182775632,
"max_weibo_num": 374663,
"max_following": 20000,
"name": "女"
},
{
"_id": "男",
"value": 5444,
"avg_followers": 2158212.2224467304,
"avg_weibo_num": 7545.73989713446,
"avg_following": 569.4851212343865,
"max_followers": 110417438,
"max_weibo_num": 756859,
"max_following": 20000,
"name": "男"
}
]
获取地理分布统计 路由:GET /api/statistic/location 返回数据:
[
{
"name": "安徽",
"value": 93
}
]
数据库采用MongoDB
数据库中共有4个Collection:blogger_info、weibo_content、blogger_friend、user_id,以下进行详细说明
含义:存储博主的个人信息 字段说明
blogger_friend 含义:存储博主的好友列表 字段说明
user_id 含义:存储全部博主的微博ID 字段说明
特殊说明:该collection是一边爬取博主的好友,一边存储其好友ID
在命令行界面分别输入以下命令:
mongoimport -d Weibo -c blogger_info (weibo-mongodb-data 的路径)/blogger_info.dat
mongoimport -d Weibo -c weibo_content (weibo-mongodb-data 的路径)/weibo_content.dat
mongoimport -d Weibo -c blogger_friend (weibo-mongodb-data 的路径)/blogger_friend.dat
mongoimport -d Weibo -c user_id (weibo-mongodb-data 的路径)/user_id.dat
weibo-mongodb-data 存储了数据库中所有collection的数据,数据库包含 10500 位微博用户的基本信息、好友信息、微博信息,大约600M 数据,需要的话,联系作者 liangjiakun@zju.edu.cn
如果遇到文件不能下载或其他产品问题,请添加管理员微信:ligongku001,并备注:产品反馈
评论(0)