python抓取直播源 并更新_虎牙直播源Python爬虫

这段源码可以爬的是虎牙“一起看”的版块即轮播电影那个区域的,其他版块的需要自行修改。import requests

import re

import json

from lxml import etree

class Huya_live:

def __init__(self):

# self.list_url = []

self.id = []

self.headers = {

"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",

}

def get_m3u8(self):

for id in self.id:

url = "https://www.huya.com/" + id

response = requests.get(url, headers=self.headers)

html = response.text

# title = re.findall("

.*|\r\n", html)[0]

html_etree = etree.HTML(html)

title = html_etree.xpath('//h1[@id="J_roomTitle"]/text()')[0]

title = re.sub("

||\r|\n", "", title)

regex = re.compile(r"{.*}")#匹配{}格式的内容

strs = re.findall(regex, html)

if id == "523923" or id == "627859" or id == "880219" or id == "11602041" or id == "11352941" or id == "11352969" or id == "880203" or id == "11342439" or id == "17089810":

str = strs[1].replace("(|)", "")[:-1]

else:

str = strs[2].replace("(|)", "")[:-1]

str = json.loads(str)

try:

streamName = "/" + str['data'][0]['gameStreamInfoList'][1]['sStreamName']

m3u8 = str['data'][0]['gameStreamInfoList'][1]['sHlsUrl']

# flv = str['data'][0]['gameStreamInfoList'][1]['sFlvUrl']

print(title, "\t\t\t\t", m3u8+streamName + ".m3u8")

except:

print(url, "获取失败")

continue

self.put_write( m3u8 + streamName + ".m3u8", title)

# def get_hrefs(self):

# base_url = "https://www.huya.com/g/seeTogether"

# response = requests.get(base_url, headers=self.headers).text

# html = etree.HTML(response)

# hrefs = html.xpath('//li[@class="game-live-item"]/a/@href')

# for href in hrefs[::2]:

# self.list_url.append(href)

def get_romId(self):

for i in range(1, 5):

yiqikan_Api = "https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=2135&tagAll=0&page=%d" % i

# xingshow_api = "https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=1663&tagAll=0&page=%d" % i

response = requests.get(yiqikan_Api, headers=self.headers).text

html = json.loads(response)

ids = html['data']['datas']

for id in ids:

self.id.append(id['profileRoom'])

def put_write(self, m3u8, title):

str = title + "***"*20 + m3u8 + "\n"

with open("./虎牙直播源.txt", 'a+') as f:

f.write(str)

if __name__ == '__main__':

huya = Huya_live()

# huya.get_hrefs()

huya.get_romId()

huya.get_m3u8()

转自 @niebaohua 仅供参考学习。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用 Python 抓取腾讯视频弹幕的步骤: 1. 打开腾讯视频网站,找到需要抓取弹幕的视频。 2. 进入视频播放页面,按 F12 打开开发者工具,选择「网络」选项卡。 3. 在开发者工具中输入弹幕发送区的内容,点击发送按钮,观察网络请求的情况。通常情况下,会有一个 POST 请求发送弹幕数据,返回弹幕数据的 URL。 4. 使用 Python 发送与浏览器相同的 POST 请求,获取弹幕数据。 5. 解析弹幕数据,获取需要的信息。 以下是具体的代码实现: ```python import requests import json # 腾讯视频弹幕接口 url = 'https://mfm.video.qq.com/danmu?otype=json&target_id=xxx&timestamp=xxx&count=xxx&second_count=xxx&session_key=xxx' # 替换为需要抓取弹幕的视频 target_id 和 session_key target_id = 'xxxxxxx' session_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # 获取弹幕数据 def get_danmu_data(): # 替换为当前时间戳 timestamp = 'xxxxxxx' # 替换为需要抓取的弹幕数量 count = 'xxxxxxx' # 替换为需要抓取的二级弹幕数量 second_count = 'xxxxxxx' headers = { 'referer': 'https://v.qq.com/', 'cookie': 'pgv_pvi=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; pgv_si=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;' } headers['cookie'] += 'pgv_pvid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;' url_with_params = url.replace('xxx', timestamp).replace('xxx', count).replace('xxx', second_count).replace('xxx', session_key).replace('xxx', target_id) response = requests.post(url_with_params, headers=headers) data = json.loads(response.content.decode('utf-8')) return data # 解析弹幕数据 def parse_danmu_data(data): for item in data['comments']: print(item['content']) # 测试 if __name__ == '__main__': data = get_danmu_data() parse_danmu_data(data) ``` 注意:该代码仅供学习参考,请勿用于非法用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值