Python B站爬虫 评论区性别统计

import requests
import json
import time

#bv号转av号
table='fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'
tr={}
for i in range(58):
    tr[table[i]]=i
s=[11,10,3,8,4,6]
xor=177451812
add=8728348608

def dec(x):
    r=0
    for i in range(6):
        r+=tr[x[s[i]]]*58**i
    return (r-add)^xor

BV = input('请输入你要查找的BV号:')
AV = dec(BV)


url = 'https://api.bilibili.com/x/v2/reply?&jsonp=jsonp&pn=1&type=1&oid={}&sort=2&_=1588385350231'.format(AV)
r = requests.get(url)
data = json.loads(r.text)
count,ps = data['data']['page']['count'],data['data']['page']['size']
page = count//ps+2

'''
time.sleep(1)
print('——*电流声*——')
time.sleep(1)
print('系统启动成功')
time.sleep(1)
print('实验启动,日志已记录')
time.sleep(1)
'''

nan,nv,baomi=0,0,0

for j in range(1,page):
    print('\n正在获取第%d页,共有%d页'%(j,page-1))
    r = requests.get('https://api.bilibili.com/x/v2/reply?&jsonp=jsonp&pn={}&type=1&oid={}&sort=2&_=1588385350231'.format(j,AV))
    data = json.loads(r.text)
    for i in data['data']['replies']:
        #print(i['member']['sex']+'     '+i['member']['uname'])
        if i['member']['sex']=='男':
            nan=nan+1
            print('  '+i['member']['sex']+'     '+i['member']['uname'])
        elif i['member']['sex']=='女':
            nv=nv+1
            print('  '+i['member']['sex']+'     '+i['member']['uname'])
        else:
            baomi=baomi+1
            print(i['member']['sex']+'     '+i['member']['uname'])
        time.sleep(0.3)
    time.sleep(1)


#print('数据库调用已完成')
print('据统计:'+'男:%d,女:%d,保密:%d'%(nan,nv,baomi))
people = nan+nv+baomi
print('男的占%.2f,女的占%.2f,保密的占%.2f'%(nan/people,nv/people,baomi/people))
input('要结束吗')

直接复制粘贴就能用
其中bv转av那段代码来自
如何看待 2020 年 3 月 23 日哔哩哔哩将稿件的「av 号」变更为「BV 号」? - mcfx的回答 - 知乎
https://www.zhihu.com/question/381784377/answer/1099438784

看一下演示效果
在这里插入图片描述

爬完之后就会统计性别了最后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值