爬虫分析某微博账号转发影响因子

任务

受一个很有想法的同学的启发,通过挖掘一个微博的转发,查看对其的转发量最有影响的因素与节点。
当然这个是需要很大规模的数据支持才能够显著说明问题,在解决这个问题的过程中,逐渐演变为对某个博主的数据分析。

过程

角度:某博主对转发微博影响

上一个文章的成功基础上,基本能够获取微博的任何内容。

数据结构

做为第一个测试的项目,首先对少量有价值的信息进行分析,这里选取:

博文数据 博主数据
转发 转发量 评论量 点赞量 发文时间 内容概要 粉丝量 个人信息(默认已知,不记录)
原文 id 昵称 个人信息(可选)*

*个人信息: 有性别、所在地概要信息及性别、所在地、星座、大学、公司等完整信息

数据采集

根据文章与书籍得知,微博移动端页面采用异步加载技术。

使用浏览器的检查(inspect,F12)功能,切换为移动端,再刷新页面(F5),获取到需要的内容链接Url。

示意

由此,可获取界面上的数据及微博的具体信息。
信息为json格式,通过构造字典囊括关键字段。

为获取一个微博博主的所有微博信息,需要构造囊括这些信息的URL。通过观察可知,格式统一为:

https://m.weibo.cn/api/container/getIndex?containerid=230413博主的id号_-_WEIBO_SECOND_PROFILE_WEIBO&page_type=03&page=页码数

因此构造出一系列的URL

###某微博账户的全部微博内容
def contentURL(id,pages):
    i=0
    urls=[]
    for page in pages:
        if page is not 0:
            urls+=['https://m.weibo.cn/api/container/getIndex?containerid=230413'+str(id)+'_-_WEIBO_SECOND_PROFILE_WEIBO&page_type=03&page='+str(page)]  
    return urls

为灵活调整需要获取的数据信息,特将储存与建立数据列表规范化,通过在开始构建词典,将需要的数据设置为True:

#获取博文信息范围、排列
blogRangeDict={
   
'visible': False,#{type: 0, list_id: 0}

#发文时间    
'created_at': True,#"20分钟前"
    
'id': False,#"4466073829119710"
'idstr': False,#"4466073829119710"
'mid': False,#"4466073829119710"
'can_edit': False,#false
'show_additional_indication': False,#0

#博文内容   
'text': True,#"【情况通报】2019年12月31日,武汉市卫健部门发布关于肺炎疫情的情况通报。
    
'textLength': False,#452
'source': False,#"360安全浏览器"
'favorited': False,#false
'pic_types': False,#""
'is_paid': False,#false
'mblog_vip_type': False,#0
'user'
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值