20200806_利用Python爬取B站视频

本文介绍了如何使用Python爬取B站视频,包括爬取程序的实现,解决CentOS上ffmpeg安装慢的问题,以及通过ffmpeg合并音频和视频文件的示例。
摘要由CSDN通过智能技术生成

利用Python爬取B站视频

主要参考lancely温欣爸比纯洁的微笑码农家园的四篇博文。

1.爬取的python程序

  以下为程序总体,从码农家园摘录而来,其中涉及到队列的问题可以参考纯洁的微笑

import requests,threading,re,json,os,time
from lxml import etree
from queue import Queue

headers = {
   
'Connection': 'keep-alive',
'Referer': 'https://www.bilibili.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'}

video_queue = Queue(100)

def single_data(url):
    resp = requests.get(url,headers=headers)
    html = etree.HTML(resp.text)
    title = html.xpath('//div[@id="viewbox_report"]/h1/@title')[0]
    print('下载:',title)
    data = re.search(r'__playinfo__=(.*?)</script><script>',resp.text).group(1)
    data = json.loads(data)
    try:
        time = data['data']['dash']['duration']
       
Python可以通过Fiddler来爬取B站App的视频信息。具体步骤如下: 1. 安装Fiddler,并启动。 2. 打开B站App,找到要爬取视频,播放一段时间。 3. 在Fiddler中,选择“Tools”菜单下的“Options”,在“HTTPS”选项卡中勾选“Decrypt HTTPS traffic”,并点击“Actions”按钮,选择“Export Root Certificate to Desktop”,将证书保存到桌面。 4. 在Python中,使用requests库发送请求时,设置代理为Fiddler的代理地址,例如: ``` import requests proxies = { "http": "http://127...1:8888", "https": "http://127...1:8888" } response = requests.get(url, proxies=proxies) ``` 5. 在Fiddler中,找到请求视频信息的请求,右键点击,选择“Copy” -> “Copy as cURL”,将请求转换为cURL格式。 6. 在Python中,使用curl-to-Python库将cURL转换为Python代码,例如: ``` from curl_to_requests import to_requests curl = 'curl "https://api.bilibili.com/x/player/playurl?cid=123456&avid=7890123&qn=80&type=&otype=json&fnver=&fnval=16&session=abc123" -H "User-Agent: Mozilla/5. (Windows NT 10.; Win64; x64; rv:88.) Gecko/20100101 Firefox/88." -H "Accept: */*" -H "Accept-Language: en-US,en;q=.5" --compressed -H "Referer: https://www.bilibili.com/video/BV12345678" -H "Origin: https://www.bilibili.com" -H "Connection: keep-alive"' requests_code = to_requests(curl) response = requests_code.run() ``` 7. 解析响应数据,获取视频信息。 以上就是通过Fiddler爬取B站App视频信息的步骤。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值