最近想做一个识别网络水军的AI,第一步就是抓取视频的评论。由于水军基本不会回复别人,没有抓取评论之间的互动。这是最初版本,甚至没有把评论存起来
import json
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0'
}
BV = input("输入视频的BV/AV号:")
print("接下来是评论:")
#变量
passage = 1
num = 0
#get函数获取response , jsondata , status_code ,主要是jsondata
def get(BV , passage):
global response , jsondata , status_code
url = f'https://api.bilibili.com/x/v2/reply/main?jsonp=jsonp&next={passage}&type=1&oid={BV}&mode=3&plat=1'
response = requests.get(url, headers = headers)
status_code = response.status_code
jsondata = json.loads(response.text)
#read函数对每页的评论逐一读取并打印
def read(i):
username = jsondata['data']['replies'][i]['member']['uname']
like = jsondata['data']['replies'][i]['like']
message = jsondata['data']['replies'][i]['content']['message']
print(username + ':' + 'like:' + str(like))
print(message)
while True:
get(BV , passage)
for i in range(1 , len(jsondata['data']['replies'])) :
read(i)
num += 1
passage += 1
if len(jsondata['data']['replies']) == 0:
break
print("粗评论数:" + str(num))
&spm=1001.2101.3001.5002&articleId=136114893&d=1&t=3&u=0929cb8e0d504a40a6bb6965badf8360)
1342

被折叠的 条评论
为什么被折叠?



