php做听歌网站,洛阳网站备案,临猗做网站,网络广告投放获取深夜emo云歌单信息 文章目录 获取深夜emo云歌单信息前言一、基本流程二、代码编写1.基本要素代码2.获取歌名和链接信息3.获取歌曲的作者信息4.将上面三个列表遍历保存 三、效果展示 前言
换个平台#xff0c;爬歌深夜网抑云平台的歌单的相关信息#xff0c;关于作者、歌…获取深夜emo云歌单信息 文章目录 获取深夜emo云歌单信息前言一、基本流程二、代码编写1.基本要素代码2.获取歌名和链接信息3.获取歌曲的作者信息4.将上面三个列表遍历保存 三、效果展示 前言
换个平台爬歌深夜网抑云平台的歌单的相关信息关于作者、歌名、链接等信息。 一、基本流程
打开网抑云平台的歌单复制这个歌单的网页地址。输入到我下面写的程序里然后执行程序就OK了。如下图所示 二、代码编写
1.基本要素代码 代码如下 from selenium import webdriver
from selenium.webdriver.common.by import By
import time# 播放歌单的网页地址 比如https://music.163.com/#/playlist?id26467411
video_url
# 创建一个对象实例用来表示用哪个浏览器爬取
driver webdriver.Firefox()
# 某个歌单的地址
driver.get(video_url)
# 等待一下等打开网页
time.sleep(5)music_url_list []
music_title_list []
music_artist_list []# 先加载框架否则下面的代码无法获取内容
driver.switch_to.frame(driver.find_element(byBy.ID, valueg_iframe))以上代码基本上都是爬虫的基本套路可以看看我之前写的爬虫教程就明白了。
主要是最后一行代码需要解释一下以前没有遇到过 这段代码的作用是在 Selenium 中切换到一个特定的 HTML iframe内联框架元素中。以下是对这段代码的详细解释
driver.switch_to.frame(): 这是 Selenium 提供的一个方法用于切换当前操作的上下文到指定的 iframe 元素中。在网页中iframe 是一种常用的嵌入其他网页内容的技术它可以在一个网页内部显示另一个网页的内容。driver.find_element(byBy.ID, valueg_iframe): 这段代码使用 find_element() 方法来查找具有给定 ID 的 HTML 元素。在这个例子中我们通过 By.ID 参数指定查找方式为 ID然后通过 valueg_iframe 指定了要查找的元素 ID 为 g_iframe。整个语句 driver.switch_to.frame(driver.find_element(byBy.ID, valueg_iframe)) 的作用是首先找到 ID 为 g_iframe 的 iframe 元素然后将 Selenium 的操作上下文切换到这个 iframe 中。这样后续的 Selenium 操作如查找元素、点击按钮等就会在这个 iframe 范围内进行而不是在主页面上。之所以需要这样做是因为在某些情况下网页中的某些元素如按钮、链接等可能存在于 iframe 中而不在主页面上。如果不先切换到对应的 iframeSelenium 将无法找到或操作这些元素。因此这段代码是确保后续操作能够正确执行的重要步骤。 2.获取歌名和链接信息 代码如下 # 获取歌名和链接相关信息
music_list driver.find_elements(byBy.CSS_SELECTOR, value.txt a)
# 遍历获取到的所有信息
for music in music_list:# 获取其中的歌名和链接music_url music.get_attribute(href)music_title music.find_element(byBy.TAG_NAME, valueb).get_attribute(title)# 将歌曲名字列表中的\xa0 换成空格for i in range(len(music_title_list)):music_title_list[i] music_title_list[i].replace(\xa0, )# 将信息添加到列表中music_url_list.append(music_url)music_title_list.append(music_title)东西很杂先把相关的信息都获取到合成一个列表。遍历这些信息从中筛选出歌名和链接。上面获取的信息中的空格会变成 \xa0所以需要把它转换回来。然后将筛选出的信息各自添加到列表中去。 3.获取歌曲的作者信息 代码如下 # 获取所有的歌曲的作者
music_artists driver.find_elements(byBy.CSS_SELECTOR, value.text)# 遍历获取到的所有信息
for music_artist in music_artists:# 获取其中作者的名字music_artis music_artist.get_attribute(title)if music_artis:# 将作者的名字添加到列表中music_artist_list.append(music_artis)基本上就是重复上一节的步骤。 4.将上面三个列表遍历保存 代码如下 # 将每首歌的以上信息一一对应起来
i 0
while i len(music_url_list):song_info f歌曲名称{music_title_list[i]} 歌曲作者{music_artist_list[i]} 歌曲链接{music_url_list[i]}print(song_info)i 1with open(music.txt, a, encodingutf-8) as f:f.write(song_info \n)一个简单的一边遍历一边保存的操作。 三、效果展示