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

详解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按若干个列的组合条件筛选数据的方法的完整攻略。 pandas多条件筛选数据函数 在pandas中,我们可以使用loc方法,并结合判断条件进行多条件筛选数据。下面是示例代码: df.loc[ (df[‘列1’] == 条件1) & (df[‘列2’] == 条件2) & (df[‘列3’] == 条件3) ] 其中,df代…

    python 2023年5月14日
    00
  • python pandas dataframe 行列选择,切片操作方法

    下面是关于Python Pandas DataFrame 行列选择、切片操作方法的详细攻略: 1. DataFrame行列选择 1.1 按列选择 DataFrame 表示的是一张表格,而表格中的每一列都有自己的列名,我们可以通过列名来选择需要的列,所以按列选择的方法是最常用的,示例如下: import pandas as pd # 创建一个包含 4 列的 D…

    python 2023年5月14日
    00
  • 使用apply()突出Pandas DataFrame的特定列

    可以使用Pandas的apply()方法来突出显示DataFrame中的特定列。 apply()方法是一个引人注目的方法,它可帮助您在多个列上同时应用函数。它旨在被DataFrame的每一列调用。 下面是一个使用apply()方法来对DataFrame的特定列进行突出显示的例子: import pandas as pd # 创建一个示例DataFrame d…

    python-answer 2023年3月27日
    00
  • Python对数据进行插值和下采样的方法

    Python中常用的数据插值和下采样方法有很多,比较常用的有线性插值、三次样条插值和下采样方法有平均下采样和最大池化下采样。下面将详细讲解其中的几种方法。 线性插值 在Python中可以使用scipy库中的interp方法实现线性插值。具体使用方法如下: from scipy.interpolate import interp1d import numpy …

    python 2023年6月13日
    00
  • python脚本执行CMD命令并返回结果的例子

    下面我将为您讲解如何通过Python脚本执行CMD命令并返回结果。 第一步:使用subprocess模块执行CMD命令 Python中的subprocess模块提供了执行外部命令的方法,其中Popen方法可以创建一个新的进程来执行指定的命令。以下是一个简单的示例,演示如何使用subprocess模块执行CMD命令: import subprocess # 要…

    python 2023年5月14日
    00
  • 如何在Pandas中用自定义分隔符将CSV文件读到Dataframe中

    在Pandas中,可以通过read_csv函数将CSV文件读入一个Dataframe中。默认情况下,该函数使用逗号作为分隔符。如果需要使用自定义分隔符将CSV文件读入Dataframe中,可以使用sep参数指定分隔符。 以下是详细的步骤: 1.导入Pandas库 import pandas as pd 2.读取CSV文件到Dataframe中 df = pd…

    python-answer 2023年3月27日
    00
  • pandas分别写入excel的不同sheet方法

    我可以为您提供有关“pandas分别写入Excel的不同sheet方法”的完整攻略。下面是步骤: 步骤一:导入pandas库 在使用pandas库时,首先要导入pandas库。可以使用以下命令进行导入: import pandas as pd 步骤二:创建数据 在将数据写入Excel之前,需要先创建一些数据,这里创建了两个数据来源。 数据来源1 data1 …

    python 2023年6月13日
    00
  • 如何扁平化Pandas DataFrame列中的分层索引

    Pandas DataFrame中的分层索引可以使得数据结构更加灵活,但有时候需要将列的分层索引“扁平化”,这样可以方便数据的处理和展示。本文将提供详细的步骤和实例说明。 什么是分层索引? 在Pandas DataFrame中,可以通过多维数组或元组嵌套的方式创建“分层索引”,也称为“层次化索引”。例如,在以下的DataFrame中,使用两个嵌套的列表创建了…

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