今天,我们来做个抓取电影弹幕的爬虫,以芒果TV网站上的免费电影《少年的你》为例,抓取一下芒果TV上电影的弹幕。
电影网页网址为:
https://www.mgtv.com/b/328217/7053545.html?lastp=list_index
分析一下这个网站,发现电影弹幕封存在json文件中,如下图:
封存弹幕的网址为:
https://bullet-ws.hitv.com/bullet/2022/06/19/012311/7053545/{i}.json
既然网址找到了,爬取就简单了,把电影拉到最后,发现最后一个弹幕为130,爬虫代码为:
import requestsimport pandas as pd headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}df = pd.DataFrame()for i in range(0, 131): resposen = requests.get(f'https://bullet-ws.hitv.com/bullet/2022/06/19/012311/7053545/{i}.json', headers=headers) # 直接用json提取数据 for j in resposen.json()['data']['items']: ids = j['ids'] # 用户id content = j['content'] # 弹幕内容 time = j['time'] # 弹幕时间 # 有的不存在点赞数 try: v2_up_count = j['v2_up_count'] except: v2_up_count = '' text = pd.DataFrame({'ids': [ids], '弹幕': [content], '发生时间': [time],'点赞数':[v2_up_count]}) df = pd.concat([df, text])df.to_csv('少年的你.csv', encoding='utf-8', index=False)
爬取结果为:
芒果TV的弹幕爬取还是比较简单、单一的,大家有时间试试手吧?,明天给大家放一下这个弹幕的词云