为什么我这里就错误了,能帮我看看吗

img

img


运输错了,还是少了什么请指导指导我Python 帮我在图片哪里看看

正则有问题,还在采集?参考下面的,题注原来的代码获取json中数据也是有问题的。

import requests
import re
import json

def get_url(url):
    head={
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
        'referer':'https://www.bilibili.com/video/BV1mX4y1U7K2'
        }
    res=requests.get(url=url,headers=head)
    return res
def get_json_url(url):
    res=get_url(url).text
    title=re.findall('<title data-vue-meta="true">([^<]+)',res)[0].replace('_哔哩哔哩_bilibili','')
    play_info=json.loads(re.findall(r'window.__playinfo__=([\s\S]+?)</script>',res)[0])
    audio=play_info['data']['dash']['audio'][0]['backupUrl'][0]
    video=play_info['data']['dash']['video'][0]['backupUrl'][0]

    return [title,video,audio]

def save(url):
    json_data=get_json_url(url=url)
    title=json_data[0]
    video_content=get_url(url=json_data[1]).content
    audio_content=get_url(url=json_data[2]).content
    with open (f'{title}.mp4','wb')as f:
        f.write(video_content)
    with open (f'{title}.mp3','wb')as f:
        f.write(audio_content)

def start(bv):
    print('开始下载')
    url=f'https://bilibili.com/video/{bv}'
    save(url)
    print('下载完成')
    
#start('BV1hp4y1U7Ao')##这个参数错误
start('BV1mX4y1U7K2')

你的正则没有提取到数据

img

re.findall 返回了一个空列表

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^