requests爬取网易云音乐

在这里插入图片描述
在这里插入图片描述

访问网易云音乐,查找搜索接口的信息,发现搜索的接口没有想要的信息。
我又去找其他接口,最后发现信息在这里
在这里插入图片描述
而且请求的接口是post的请求头
在这里插入图片描述
我换了种方式爬取,用selnium的方式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后的成果是这样的`
不打了,手累,不懂得可以问我。

import requests
from selenium import webdriver
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36',

}
a=input('输入名字:')
options = webdriver.ChromeOptions()
chrome_prefs = {}
options.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
chrome_prefs["profile.managed_default_content_settings"] = {"images": 2}
options.add_argument('--headless')
diver=webdriver.Chrome(options=options)
s=diver.get('https://music.163.com/#/search/m/?s={}&type=1'.format(a))
diver.switch_to.frame("g_iframe")
c=diver.find_elements_by_xpath('//div[@class="n-srchrst"]/div[@class="srchsongst"]/div')

p=0
d=[]
nameid=[]
for i in c:
    p=p+1
    id=i.find_element_by_xpath('./div[1]/div/a').get_attribute('data-res-id')
    name=i.find_element_by_xpath('./div[1]/div/a').get_attribute('data-res-data')
    musicname=i.find_element_by_xpath('./div[2]/div/div/a/b').get_attribute('title')
    song = i.find_element_by_xpath('./div[4]/div/a').text
    d.append(id)
    nameid.append(musicname)
    print("{}.".format(p),musicname,song)

inputname=int(input("请输入选择的序号:"))
try:
    r=requests.get('http://music.163.com/song/media/outer/url?id={}.mp3'.format(d[inputname-1]),headers=headers)

    with open('{}.mp3'.format(nameid[inputname-1]),'wb')as f:
        f.write(r.content)
    print("下载成功")
except:
    print("下载失败")

转载需要表明出处

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值