转载请注明作者和出处:http://blog.csdn.net/lyc44813418/article/details/88930046
Github代码获取:https://github.com/librauee/reptile
Python版本: Python3.7
运行平台: Windows
IDE:Spyder
说到被翻拍最多的大概就是金庸先生的剧了,有华人的地方就会有金庸剧。而在他的多部小说中,翻拍次数最多的无疑就是《倚天屠龙记》了,而且次数已经高达十四次。最早的是1963香港导演将这个小说以电影形式拍成了上下两集。虽然是第一次,但不得不说导演也是非常的有新意,和金庸多次沟通后,也是将很多情节做了一些改变,比如将武当七侠排行最小的改成了师妹,而金毛谢逊也只是瞎一只眼等等。
打开腾讯视频的网页,点开新版倚天屠龙记,播放视频,弹幕随之出现再屏幕之上。
timestamp每增加30就会更改整个弹幕页面,利用format对链接进行改写,在循环中每次增加30,并更改target_id即电视剧的每一集来获取每一集的弹幕信息,下面便是编写的获取弹幕的函数。这里一共取了前五集进行爬取。
def get_danmu(self):
"""
爬取一集新版倚天屠龙记电视剧的弹幕
"""
count=0
target_list=[str(3748894695),str(3748894707),str(3748894703),str(3748894705),str(3748894704)]
for target in target_list:
url='http://mfm.video.qq.com/danmu?timestamp={}&target_id='+target
page=1
for i in range(100):
req_url=url.format(30*page)
r=requests.get(req_url, headers=self.headers)
for danmu in r.json(strict=False)['comments']:
self.parse_comment(danmu=danmu)
page+=1
count+=1
print("已将第{}集弹幕信息存入数据库".format(count))
获取的json构造成字典,主要包括弹幕内容,发弹幕用户的昵称,点赞数等等,然后逐条插入MongoDB数据库
def parse_comment(self, danmu):
"""
解析函数,用来解析爬回来的json评论数据,并把数据保存进mongodb数据库
"""
dmdic = {'content': danmu['content'], 'id': danmu['commentid'],
'upcount': danmu['upcount'],'timepoint': danmu['timepoint'],
'username': danmu['opername']
} # 构造弹幕字典
self.db['TecentVedioDanmu'].insert_one(dmdic)
查看已存入数据库的数据信息
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 54301 entries, 0 to 54300
Data columns (total 5 columns):
content 54301 non-null object
id 54301 non-null object
timepoint 54301 non-null int64
upcount 54301 non-null int64
username 54301 non-null object
dtypes: int64(2), object(3)
memory usage: 2.1+ MB
content id timepoint upcount username
0 曾舜晞你的小可爱突然出现 6506515190020290832 30 183 Leyla
1 竟然还是这个 主题曲 太好听 6506499481202570807 31 348 慢慢
2 哇塞终于出来了等了好久了 6506515196232055107 31 168 Leyla
3 还没到点呢,怎么回事 6506520554738563861 31 135 李逍遥
4 有周海媚?我好像看到了 6506499433775511859 32 182 莫非
联系客服