使用到的模块有: requests,json
使用chrome的开发者工具抓取http包 在filter中过滤 就能找到
便能发现请求地址为:
http://www.panda.tv/api_room?roomid=(房间ID)&pub_key=&_=(时间戳)
或直接使用
http://www.panda.tv/api_room?roomid=(房间ID)
#run with py3 import requests as req from json import loads room_id = 11111 #房间ID main_url = "http://www.panda.tv/api_room?roomid={room_id}".format(room_id=room_id) infor_dict = loads(req.get(main_url).text) #获取json并用loads转换为dict
提供的API使用特别方便并直观 就不多介绍了
其中比较有趣的是直播视频流的位置
其实urlFilename位于刚刚获取的API中videoinfo的room_key
于是就能构造出视频流的url:
real_video_address = 'http://pl11.live.panda.tv/live_panda/{room_key}.flv'.format(room_key=infor_dict['data']['videoinfo']['room_key'])
所以 可以使用requests中的get方法(设置stream参数为True) 并利用文件操作来实时保存直播视频流到本地
with open('video.flv','wb') as f: res = req.get(real_video_address,stream=True) for i in res.iter_content(chunk_size=1024): #iter_content用于迭代流 chunk_size参数为每次迭代包的大小 f.write(i)
注:不同房间的服务器地址和所需参数不同 请自行测试