NameError: name 'requests' is not defined 爬虫时

网易云爬虫歌曲反馈错误:cmd 已经安装了并且导入了requests

img

运行结果:_Traceback (most recent call last):
  File "D:/Project/main.py", line 12, in <module>
    response = requests.get('https://music.163.com/discover/toplist?id=3778678',headers=headers1)
  NameError: name 'requests' is not defined
进程已结束,退出代码1_


#代码开始
from lxml import etree
import requests #用来发送请求
# 网易云网站
url='https://music.163.com/discover/toplist?id=3778678'
#防止被检测是爬虫
headers1={
    'User-Agent':' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
#2 向目标网站发送获取数据的请求
response = requests.get('https://music.163.com/discover/toplist?id=3778678',headers=headers1)
print(response.text)   #状态码200 响应成功   获取全部网页数据
data = etree.HTML(response.text)

# 3 过滤数据
list=data.xpath  ('//a[contains(@herf,"/song?"]')       #专门用来抓取数据,contain 包含

#4 下载数据,保存在本地
for music in list:
    #找音乐
    href=music.xpath('./@href')[0]
    base_url="http://music.163.com/song/media/outer/url?id="
    id=href.split("=")[1]
    #下载地址
    music_url=base_url+id
    #名字
    name=music.xpath("./text()")[0]  #从第一个开始找名字
    #发送下载数据的请求
    music_mp3=requests.get(music_url,headers=headers1)
    #保存
    with open("./music/"+name+'.mp3','ab') as f:
        f.write(music_mp3.content)
    print(name+"下载成功")


一是没有先导入requests,二是导入库不成功,可能是运行环境与库所在的环境不同,这些都可能导致没有定义错误。另外目录里不要有requests.py与库名重名文件

你完整的源代码前10行是什么?