翻页爬取网易云音乐歌单作者和标题

案例目的:

通过翻页selenium操作网易云音乐,介绍如何切换iframe框架以及如何使用selenium定位数据所在的节点。

代码功能:

输入下载的数据页数,自动获取歌单中歌曲名称以及作者

找到目标的url:

右键检查,找到歌单中歌曲名称和作者所在的节点位置:

通过节点位置,我们可以得到数据的xpath语法:

但是,注意,我们需要的歌单名称和作者是在iframe框架的。意思也就是他们采用的是网页套网页的方式。

因此,我们需要切换到iframe框架下才能提取到目标数据。如下图:

最后,翻页操作:

方法一:通过定义"下一页"所在的节点,模拟点击,进行翻页
方法二:通过找到url的规律实现翻页

这里我们使用方法二,通过寻找url的规律实现翻页操作

对比前三页的url:

https://music.163.com/#/discover/playlist/order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset=0
https://music.163.com/#/discover/playlist/order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset=35
https://music.163.com/#/discover/playlist/order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset=70

由上图,可得到url规律在于offset参数

分析完毕,上代码:

from selenium.webdriver import Chrome
import jsonif __name__ == '__main__':# 输入要爬取的页数pages = int(input('请输入要爬取的页数:'))# 创建浏览器对象(打开浏览器)chrome = Chrome()# 在网址栏输入目标的url打开网页song_list = []author_list = []for i in range(pages):offset = i*35chrome.get(f'https://music.163.com/#/discover/playlist/?order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset={offset}')# 注意:需要先切换框架chrome.switch_to.frame('g_iframe')# 通过xpath语法定位歌单名称和作者所在的位置nodes = chrome.find_elements_by_xpath('//ul[@id="m-pl-container"]/li')for node in nodes:song_name = node.find_element_by_xpath("./p[1]/a").textauthor_name = node.find_element_by_xpath("./p[2]/a").textsong_list.append(song_name)author_list.append(author_name)for i in range(len(song_list)):dict_ = {}dict_[song_list[i]] = author_list[i]# 将数据转换成json格式json_data = json.dumps(dict_,ensure_ascii=False)+',\n'# 将数据保存到本地with open('网易云歌单信息.json','a',encoding='utf-8')as f:f.write(json_data)

我爬取了两页(每一页对应35个数据)

执行结果如下:

selenium切换iframe框架案例——翻页爬取网易云音乐歌单作者和名称相关推荐

  1. 用python爬取网易云音乐歌单列表

    本文分为两个部分:基础知识和正文,其中基础知识包括什么正则表达式以及Beautifulsoup4的使用. 一.正则表达式 正则表达式用于字符串查找.合法性检查以及作为程序员的工具箱使用. 字符串查找: ...

  2. python爬取网易云音乐歌单_【python】爬取并批量下载网易云歌单,嗨翻暑假!

    [Python] 纯文本查看 复制代码# 利用 Selenium 抓取淘宝商品并用 PyQuery 解析得到商品的图片.名称.价格.购买人数. # 店铺名称.店铺所在地信息,并将其保存到MongoDB ...

  3. python爬取音乐歌曲大全_Python爬取网易云音乐歌单歌曲

    # 从网易云音乐下载歌单歌曲 # 参考了这些网址 # https://blog.csdn.net/Ciiiiiing/article/details/62434438 # https://github ...

  4. Python爬取网易云音乐歌单内所有歌曲

    一.目标: 下载网易云音乐热门歌单 二.用到的模块: requests,multiprocessing,re. 三.步骤: (1)页面分析:首先打开网易云音乐,选择热门歌单,可以看到以下歌单列表,然后 ...

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

    目标网站: 首先获取第一页的数据,这里关键要切换到iframe里 打印一下 获取剩下的页数,这里在点击下一页之前需要设置一个延迟,不然会报错. 结果: 一共37页,爬取完毕后关闭浏览器 完整代码: u ...

  6. Python爬取网易云音乐歌单名以及歌单标签

    爬取网易云音乐歌单名以及歌单标签 正则表达式 .可以匹配任意字符,所以:要匹配变长的字符,在正则表达式中,用*表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个 ...

  7. 骚年,还在为歌荒发愁吗?python教你爬取网易云热门歌单

    需求分析 每当歌荒时,总想找那些播放量比较高的歌单听,毕竟这么多人选择的歌单歌曲质量总会有保证. 爬取目标 本文将提取网易云音乐 播放量在1000万 以上的歌单名称,播放量和链接地址. 准备工作 保证 ...

  8. python网络爬虫-爬虫实战-(爬取网易云薛之谦歌单里歌曲并下载)

    1.导入要用到的库 #导入库 import requests from fake_useragent import UserAgent from lxml import etree import re ...

  9. 利用python爬取网易云心爱歌单

    一 cookie是什么东西? 小饼干?糖果?能吃吗? 简单来说就是你第一次用账号密码访问服务器 服务器在你本机硬盘上设置一个身份识别的会员卡(cookie) 下次再去访问的时候只要亮一下你的卡片(co ...

最新文章

  1. java 修饰符 访问控制符_Java访问修饰符(访问控制符)
  2. 数据上报痛点解决方案
  3. 简单调试 Bash 脚本
  4. 网友写的验证码生成方案,可防止绝大多数机械识别。
  5. 基于XAMPP的Testlink安装方法
  6. Linux进程管理之SMP负载平衡
  7. 如何激发孩子的想象力_如何培养孩子想象力
  8. 单片机编程软件很简单(20),快速学会keil单片机编程软件
  9. c语言课程设计题目 吃豆子,C语言吃豆子游戏
  10. K3 ERP 系统财务管理 - 账结法、表结法
  11. SPDA-CNN:Unifying Semantic Part Detection and Abstraction for Fine-grained Recognition
  12. 微信公众号怎么变现?
  13. iPhone X 适配
  14. Kusto Query Language (KQL) 学习笔记
  15. 神奇的兔子序列(斐波那契数列)
  16. Python 函数 sort(),sorted() 之区别及 key=lambda x:x[] 之理解
  17. Java8 Lambda表达式(三)Lambda表达式与Stream API
  18. 保健中药不贵胜过市面上的保健品
  19. 计算机在盲童音乐教学中的具体应用,盲童钢琴启蒙教学实践探析
  20. 字符指针数组(二级指针)

热门文章

  1. Java · PTA探险之旅
  2. 如何通过数据找到影响用户留存的关键因素
  3. 太棒了 | 辞职之后,去了一趟新疆!
  4. Inserting操作导致死锁Oracle
  5. 第一课 大数据技术之Fink1.13的实战学习-部署使用和基础概念
  6. CF、MF、FM、FFM浅析
  7. 回溯法输出自然数1~n的全排列。
  8. 我,程序员,马上35岁...
  9. Hieroglyph3(基于DirectX 11的开源渲染引擎) 框架分析
  10. 搜狗怎么做收录?我们来看看搜狗官方的回答