爬虫是,路径老出问题怎么解决?

这几个错误大致,测试了多次知道是路径部分的问题,找了一下午找不到出在哪人都麻了
麻烦各位boss看看

'''报错;

  • E:\b站视频\【2分钟辨析:bildsam,: Invalid argument

  • E:\b站视频\老天爷你觉得这样对一个7岁的孩子好吗?原本是应该无忧无虑的小孩子,你却让他背负这么多!: Invalid argument
    'quot' ???ⲿ???Ҳ???ǿе???ij??? # 乱码了???

  • E:\b站视频\中单T3: No such file or directory


# 需要安装ffmpeg

class bilibili(object):
    def __init__(self,word,page):
        # 爬取数据网页源码

       self.headers = {
                'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
           # 'user-agent': 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263',
                'referer': 'https://www.bilibili.com/'
        }
       # print(self.headers)
       self.word = urllib.parse.quote(word)
       self.page = page


    def search_video_list(self):

        url = f'https://api.bilibili.com/x/web-interface/wbi/search/type?__refresh__=true&_extra=&context=&page={self.page}&page_size=42&from_source=&from_spmid=333.337&platform=pc&highlight=1&single_column=0&keyword={self.word}&qv_id=8FmF8ni6SYF6I8OmsYUC6uSyVO8UPKPe&ad_resource=5654&source_tag=3&category_id=&search_type=video&dynamic_offset=0&w_rid=693626d143437a03f4a6e2dcba46e6ec&wts=1673415050'
        res_data = requests.get(url,headers=self.headers)
        time.sleep(1)
        data = res_data.json()['data']['result']
        video_url_list = []
        video_name_list = []
        for index in range(len(data)):
            name = data[index]['title']
            arcul = data[index]['arcurl']
            name = name.replace('', '').replace('', '')
            # v = \\/:*?/"<>|
            video_name_list.append(name)
            video_url_list.append(arcul)
        return video_name_list,video_url_list

# 得到视频
    def get_video_download(self):
        print('-------------------------------请稍等------------------------------------------')
        video_dir_path = 'E:\\b站视频'
        vido_name_list, video_url_list = self.search_video_list()
        for index,video_url in enumerate(video_url_list):
            # print(video_url)
            video_name = vido_name_list[index]
            video_name = re.sub(r'[\\\/\:\*\?\<\>\|]','_',video_name)
            # print(video_name)
            res_video = requests.get(video_url,headers=self.headers).text
            time.sleep(0.5)
            # print(res_video)
            info = re.findall('',res_video)[0]
            info = json.loads(info)
            # 3. 列表为0爬取高清视频的url
            aurl = info['data']['dash']['audio'][0]['baseUrl']
            vurl = info['data']['dash']['video'][0]['baseUrl']
            # print(aurl)
            if os.path.split(video_dir_path)[1] not in os.listdir('E:\\'):
                os.makedirs("E:\\b站视频")
            if video_name+'output.mp4' not in os.listdir('E:/b站视频/'):
                time.sleep(1)
                res_video_download = requests.get(vurl,headers=self.headers,stream=True)
                res_audio_download = requests.get(aurl,headers=self.headers,stream=True)

                filename = os.path.join(video_dir_path,video_name)
                print(filename)

                chunk_size = 1024
                pbar_video = tqdm(total=int(res_video_download.headers.get('Content-Length')),position=0)
                pbar_audio = tqdm(total=int(res_audio_download.headers.get('Content-Length')),position=0)
                print('-------------------------------视频正在下载------------------------------------------')
                with open(f'{filename}.mp4',mode='wb') as f1:
                    for chunk in res_video_download.iter_content(chunk_size=chunk_size):
                        f1.write(chunk)
                        pbar_video.update(chunk_size)
                    pbar_video.set_description('video下载完毕!!!')
                    pbar_video.close()

                with open(f'{filename}.mp3',mode='wb') as f2:
                    for chunk in res_audio_download.iter_content(chunk_size=chunk_size):
                        f2.write(chunk)
                        pbar_audio.update(chunk_size)
                    pbar_audio.set_description('audio下载完毕!!!')
                    pbar_audio.close()
                        # f.flush()
                self.combine_video()


            else:
                print('已下载,跳过!!!')


    # 合并视频
    def combine_video(self):
        list = []
        vlist = []
        alist = []
        # 分类器 mp3/4  相同时合并
        for v_name in os.listdir('E:\\b站视频'):
            v = re.findall('.*.mp4', v_name)
            a = re.findall('.*.mp3', v_name)
            if v != list:
                vlist.append(v[0])

            if a != list:
                alist.append(a[0])
        for i in vlist:
            for j in alist:
                if i[::-1].split('.',1)[1][::-1] == j[::-1].split('.',1)[1][::-1]:
                    name = i[::-1].split('.',1)[1][::-1]

                    COMMAND = f'ffmpeg -i E:\\b站视频\\{name}.mp4 -i E:\\b站视频\\{name}.mp3 -c:v copy -c:a aac -strict experimental E:\\b站视频\\{name}output.mp4 -n'
                    subprocess.run(COMMAND, shell=True)
                    time.sleep(1)
                    os.remove('E:\\b站视频\\'+name + '.mp4')
                    os.remove('E:\\b站视频\\'+name + '.mp3')



if __name__ == '__main__':
    print('温馨提示:视频下载慢时,请重新连接')
    # print('视频下载结束!!!请按q-->')
    def main():
        try:
            word, page = input("---请输入你要爬取哔站的搜索内容和页数(以空格分割):").split(' ')
            page = int(page)
            b = bilibili(word, page)
            b.get_video_download()

        except ValueError as e:
            print('输入格式错误!!!请重新输入-->')
            main()
    main()

该回答引用ChatGPT,如果有帮助到您请点个采纳
这个错误很可能是由于文件名中包含非法字符导致的。在Windows系统中,文件名不能包含如下字符:

\ / : * ? " < > |
建议更改文件名以去掉这些字符,例如:把 "【2分钟辨析:bildsam," 改成 "bildsam_2min"。

对于乱码的情况,请检查文件名是否正确编码,并使用正确编码的方式保存

在ffmpeg的命令那里把路径加上引号,不然对参数的解析会出问题:

COMMAND = f'ffmpeg -i "E:\\b站视频\\{name}.mp4" -i "E:\\b站视频\\{name}.mp3" -c:v copy -c:a aac -strict experimental "E:\\b站视频\\{name}output.mp4" -n'