Welcome To Heike07's Blog.

欢迎来到Heike07官方博客

用简单的爬虫获取PandaTV的房间API

使用到的模块有: requests,json

使用chrome的开发者工具抓取http包 在filter中过滤 就能找到

《用简单的爬虫获取PandaTV的房间API》

便能发现请求地址为:

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使用特别方便并直观 就不多介绍了

其中比较有趣的是直播视频流的位置

《用简单的爬虫获取PandaTV的房间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)

注:不同房间的服务器地址和所需参数不同 请自行测试

 

 

 

点赞

发表回复