问:这个爬取代码是哪里出问题了?

能帮我看看这个代码有什么问题吗
运行结果是这样的

C:\Users\Administrator\PycharmProjects\pythonProject2\venv\Scripts\python.exe "C:/Program Files/JetBrains/PyCharm Community Edition 2022.1/Pycharm/音乐爬取.py"
请输入要下载的歌手:薛之谦
需要下载第几页:1
Traceback (most recent call last):
  File "C:/Program Files/JetBrains/PyCharm Community Edition 2022.1/Pycharm/音乐爬取.py", line 25, in 
    with open('kuwo/%s.mp3' % name, 'wb') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'kuwo/演员.mp3'

Process finished with exit code 1



```python
import requests

headers = {
    'Cookie': '_ga=GA1.2.1574857442.1641026894; _gid=GA1.2.607461508.1641026894; kw_token=WRFKXNRRLBB',
    'csrf': 'WRFKXNRRLBB',
    'Host': 'www.kuwo.cn',
    'Referer': 'http://www.kuwo.cn/search/list',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
}
key = input('请输入要下载的歌手:')
pn = input('需要下载第几页:')

url = 'https://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={}&pn={}'.format(key,pn)
resp = requests.get(url, headers=headers)

# print(resp.json())
for data in resp.json()['data']['list']:
    # print(data)
    rid = data['rid']
    # print(rid)
    name = data['name'].split('-')[0]
    # print(name)
    new_url = 'https://link.hhtjim.com/kw/{}.mp3'.format(rid)
    response = requests.get(new_url)
    with open('kuwo/%s.mp3' % name, 'wb') as f:
        f.write(response.content)
        print(name, '下载成功')


```

open 只能创建文件,不能创建文件夹,你需要在写文件前验证文件是否存在,如果不存在需要在写入前创建文件夹


import requests
import os  # 追加 os 引用

headers = {
    'Cookie': '_ga=GA1.2.1574857442.1641026894; _gid=GA1.2.607461508.1641026894; kw_token=WRFKXNRRLBB',
    'csrf': 'WRFKXNRRLBB',
    'Host': 'www.kuwo.cn',
    'Referer': 'http://www.kuwo.cn/search/list',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
}
key = '薛之谦' #input('请输入要下载的歌手:')
pn = 1 #input('需要下载第几页:')

url = 'https://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={}&pn={}'.format(key,pn)
resp = requests.get(url, headers=headers)

# print(resp.json())
for data in resp.json()['data']['list']:
    # print(data)
    rid = data['rid']
    # print(rid)
    name = data['name'].split('-')[0]
    # print(name)
    new_url = 'https://link.hhtjim.com/kw/{}.mp3'.format(rid)
    response = requests.get(new_url)
    if not os.path.exists('kuwo'): # 如果文件夹不存在则创建
        os.mkdir('kuwo')
    
    with open('kuwo/%s.mp3' % name, 'wb') as f:
        f.write(response.content)
        print(name, '下载成功')

参考GPT和自己的思路:

根据错误提示,问题出在打开文件的语句:with open('kuwo/%s.mp3' % name, 'wb') as f:。错误指出找不到 kuwo/演员.mp3 这个文件,可能是因为 kuwo 这个文件夹不存在或者路径不正确。建议检查代码中文件夹的路径是否正确,或者手动先创建文件夹再运行代码。