网易云音乐
为什么只能爬到10首歌呢?歌单里不止10首{:10_277:}#!/user/bin/env python
# -*- coding:utf-8 -*-
# time:2021/6/17
#需求:下载网易云歌单
import requests as req
from lxml import etree
import os
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
}
url = "https://music.163.com/playlist?id=6775871260"
# url = "https://music.163.com/playlist?id=6731975194"
page_text = req.get(url=url,headers=headers).text
tree = etree.HTML(page_text)
id_list = tree.xpath('//*[@id="song-list-pre-cache"]//a/@href')
name_list = tree.xpath('//*[@id="song-list-pre-cache"]//a/text()')
i = 0
print(name_list,id_list)
#为毛只有10首??
if not os.path.exists("./wangyi list music"):
os.mkdir("./wangyi list music")
try:
for id_ in id_list:
id_ = id_.split('=')[-1]
name = name_list
i +=1
base_url = "http://music.163.com/song/media/outer/url?id=%s.mp3" % id_
content = req.get(url=base_url,headers=headers).content
with open("./wangyi list music/"+name+".mp3",'wb') as fp:
fp.write(content)
print(name+".mp3下载完成!")
except FileNotFoundError or OSError:
print(name+"因出错没有下载")
可能是要翻到下一页的
可以试着加上"page"参数 xiaosi4081 发表于 2021-6-19 11:09
可能是要翻到下一页的
可以试着加上"page"参数
页面里面没有翻页这个按钮
你说的page参数是加在哪里呢? 查看更多内容,请下载客户端 南归 发表于 2021-6-19 15:39
查看更多内容,请下载客户端
页面上显示了20首,为什么其他10首爬不到? 无枝为檄 发表于 2021-6-19 15:58
页面上显示了20首,为什么其他10首爬不到?
20首是登陆后,你的代码里没有登陆。 无枝为檄 发表于 2021-6-19 15:58
页面上显示了20首,为什么其他10首爬不到?
如果是6楼说的你没有登陆的话
可以尝试查看网页信息里的cookie xiaosi4081 发表于 2021-6-19 18:37
如果是6楼说的你没有登陆的话
可以尝试查看网页信息里的cookie
好{:10_254:} suchocolate 发表于 2021-6-19 16:18
20首是登陆后,你的代码里没有登陆。
我去试试{:10_254:} 我想用手机号模拟登录 为什么我找不到输入手机号的那个element呢?
from selenium import webdriver
from time import sleep
bro = webdriver.Chrome(executable_path="./chromedriver.exe")
wangyi_url = "https://music.163.com/"
bro.get(wangyi_url)
login_url = bro.find_element_by_xpath('//*[@id="g-topbar"]/div/div/a').get_attribute("href")
bro.get(login_url)
bro.switch_to.frame("g_iframe")
switch_btn = bro.find_element_by_id('otherbtn')
switch_btn.click()
agree_btn = bro.find_element_by_id("j-official-terms")
agree_btn.click()
cellphone_btn = bro.find_element_by_class_name("f-mgt10")
cellphone_btn.click()
sleep(2)
# telephone = bro.find_element_by_xpath('//input[@id="p"]')
telephone = bro.find_element_by_id('p')
telephone.send_keys("xxx")
# password = bro.find_element_by_xpath("//input[@id='pw']")
password = bro.find_element_by_id("pw")
password.send_keys("xxx")
页:
[1]