目标网址:https://music.163.com/
根据昨天抓取的所有歌手,获取他们的歌曲。
先获取下所有歌手id
with open('163.txt',encoding='utf-8') as file:
data=file.readlines()
print(len(data))
image.png
每页50个歌曲 处理 并保存
for d in data:
id=d.split('----')[0]
name=d.split('----')[1].strip()
url='https://music.163.com/artist?id=%s'%id
print(url)
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
response=requests.get(url,headers=headers,verify=False)
selector=html.fromstring(response.text)
songEleList=selector.xpath('//ul[@class="f-hide"]/li')
print(len(songEleList))
for song in songEleList:
detailUrl=song.xpath('a/@href')[0]
songName=song.xpath('a/text()')[0]
print(songName+detailUrl)
f.write(name+'----'+songName+'----'+detailUrl+'\n')
唯一需要注意的是这里,接口获取的结果跟网页显示的是不一样的
网页显示的是a链接 而返回结果是ul/li
image.png
image.png
结果:
完整代码 https://github.com/Liangjianghao/everyDay_spider cloud_music
网友评论