详解python selenium 爬取网易云音乐歌单名

yizhihongxing

详解Python Selenium爬取网易云音乐歌单名

本攻略将从以下几个方面详细介绍如何使用Python和Selenium模拟登录网易云音乐,并爬取网易云音乐歌单名。

准备工作

在开始之前,需要进行如下准备工作:

  1. 安装Python3
  2. 安装Selenium库
  3. 安装Chrome浏览器
  4. 下载Chrome浏览器对应的驱动程序(注意驱动版本与Chrome浏览器版本要匹配)

操作步骤

1. 导入相关库

首先,需要导入Selenium库中的WebDriver和Keys两个类。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

2. 打开Chrome浏览器并登录网易云音乐

driver = webdriver.Chrome('/path/to/chromedriver') # 指定Chrome驱动程序路径
driver.get("http://music.163.com/")
driver.switch_to.frame("contentFrame") # 进入iframe才能找到元素
login_btn = driver.find_element_by_css_selector("a[data-action='login']")
login_btn.click()
phone_login_btn = driver.find_element_by_css_selector("a[data-type='1']")
phone_login_btn.click()
phone_input = driver.find_element_by_css_selector("input[name='username']")
phone_input.send_keys("手机号")
password_input = driver.find_element_by_css_selector("input[name='password']")
password_input.send_keys("密码")
password_input.send_keys(Keys.RETURN)

3. 获取歌单名

playlist_name_list = []
for i in range(1, 10):  # 假设要获取前10个歌单名
    driver.get(f"http://music.163.com/user/home?id={用户ID}&page={i}&sortType=5") # 假设用户ID为123456
    driver.switch_to.frame("contentFrame")
    playlists = driver.find_elements_by_css_selector("a.msk") # 获取歌单链接
    for playlist in playlists: 
        playlist_name = playlist.get_attribute("title") # 获取歌单标题
        playlist_name_list.append(playlist_name)
print(playlist_name_list)

示例说明

假设你想获取网易云音乐用户"最爱"的前十个歌单名,可以按照以下步骤操作:

  1. 在Chrome浏览器中登录网易云音乐账号。
  2. 打开网易云音乐用户"最爱"的主页(ID为252604054)
  3. 在浏览器地址栏中输入"http://music.163.com/user/home?id=252604054&page=1&sortType=5",回车进入该用户的歌单页。(这里获取第一页的歌单,sortType=5表示按创建时间排序;如需获取其他页的歌单可更改page的值)
  4. 复制上述第2步和第3步操作,并将page的值依次增加到10,获取相应页的歌单
  5. 打开Python编辑器,将上述Python代码拷贝到编辑器中。
  6. 注意修改代码中的用户ID、驱动程序路径、手机号和密码(如需通过邮箱登录可将代码中的手机号输入框改为邮箱输入框)。
  7. 执行代码,等待爬取完成后输出前十个歌单名。

另外,本攻略中的代码仅供学习和研究使用,请勿用于任何非法或商业用途。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解python selenium 爬取网易云音乐歌单名 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 在Pandas数据框架中对数值进行四舍五入的方法

    在Pandas数据框架中对数值进行四舍五入可以使用round()方法。该方法用于对数据框架中数值进行准确的四舍五入。 例如,我们有一个如下的数据框架: import pandas as pd # 创建一个数据框架 df = pd.DataFrame({ ‘名称’: [‘苹果’, ‘橘子’, ‘香蕉’, ‘菠萝’], ‘价格’: [3.14159, 1.234…

    python-answer 2023年3月27日
    00
  • Python Pandas – 检查两个共享封闭端点的Interval对象是否重叠

    Python Pandas是一个强大的数据分析库,它提供了丰富的数据处理和分析工具,其中包括对interval对象的支持。在Pandas中,可以使用interval_range()函数来创建interval对象,可以使用overlaps()方法来检查interval对象是否重叠。 要检查两个共享封闭端点的interval对象是否重叠,可以使用overlaps…

    python-answer 2023年3月27日
    00
  • 如何通过索引标签在Pandas DataFrame中删除行

    在Pandas DataFrame中,我们可以使用索引标签来删除行。下面是详细的攻略步骤以及带有实例的说明: 1. 查看DataFrame 首先,我们需要查看DataFrame的数据内容。可以使用pandas库中的read_csv()函数读取csv文件,也可以手动创建DataFrame对象。例如,我们可以通过以下代码创建一个简单的DataFrame对象: i…

    python-answer 2023年3月27日
    00
  • 创建一个Pandas时间序列来显示给定年份的所有星期日

    要创建一个Pandas时间序列来显示给定年份的所有星期日,我们可以使用Pandas中的date_range函数和参数freq=”W-Sun”。下面是实现的步骤: 步骤一:导入必要模块 在代码中首先需要导入必要的Python模块,其中就包括了Pandas库: import pandas as pd 步骤二:创建日期范围 使用Pandas中的date_range…

    python-answer 2023年3月27日
    00
  • 通过Python实现一个A/B测试详解

    通过Python实现一个A/B测试详解 什么是A/B测试? A/B测试是指比较两个版本的网页、应用等,以确定哪个版本对用户更有吸引力或效果更好,并从而选择更优的版本。A/B测试可以帮助网站和应用开发者提高转化率、点击率、用户留存率等指标。 A/B测试的步骤 A/B测试一般分为以下几个步骤: 确定测试目标和指标。例如,我们想要提高购买转化率,因此购买转化率就是…

    python 2023年5月14日
    00
  • 使用Python转换电子表格中的任何日期

    如果你需要将电子表格中的日期转换为Python可识别的格式,可以使用Python的datetime模块。下面是一些简单的代码片段,可以帮助你完成这个任务。 假设你的电子表格中的日期格式为“2021-12-31”,你可以使用以下代码将其转换为Python的datetime对象: from datetime import datetime date_string…

    python-answer 2023年3月27日
    00
  • 如何在Pandas数据框架中把整数转换成字符串

    将整数转换为字符串在数据处理中非常常见,在Pandas数据框架中也可以很方便地完成这个任务。 下面是将整数数据框中的所有整数转换为字符串的详细步骤: 1.导入Pandas库并读取数据框 import pandas as pd data = pd.read_csv(‘data.csv’) 在这里,数据框的名称是data,读取的文件格式是csv文件。 2.使用a…

    python-answer 2023年3月27日
    00
  • inplace在Pandas中是什么意思

    在Pandas中,inplace是一个常用的参数,用于决定是否直接更改原始数据。通俗地说,如果inplace=True,则表明函数执行后会更改原始数据,并返回None;如果inplace=False(默认值),则表明函数会返回更改后的新数据,并不会修改原始数据。 具体来说,inplace的使用通常比较适用于处理大量数据时,因为在处理大量数据时,避免在原始数据…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部