爬取酷狗歌曲并进行下载用的是selenuim

1. 请求的url并发起请求
2. 定位元素,循环遍历
3. 窗口的转移
4. 获取歌曲的下载路径
5. 保存到指定的文件里面
6. 总结

开始来看看吧
首先大家还是先导一下包吧,也就那几个好吧:
不会导包的看下我写的这篇哟https://blog.csdn.net/XY52wiue/article/details/112975003

import requests
from selenium.webdriver import Chrome,ChromeOptions
import os
import time

一:请求的url并发起请求

我这里直接到音乐里面,这里不涉及登录,可以不用想那么多,哈哈哈哈。

url = 'https://www.kugou.com/yy/rank/home/1-8888.html?from=homepage'

进行伪装:

headers = {"User_Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"}

发起请求,并且以utf-8的格式进行读取数据:
如果有看不懂的,可以看下我前面几篇文章:

response = requests.get(url=url,headers=headers)#手动设定响应数据的编码格式response.encoding = 'utf-8'page_text = response.text#这个就是再后台上面运行那个浏览器,不在表面上占用你的option = ChromeOptions()option.add_argument('--headless')option.add_argument("--no-sandbox")option.add_experimental_option('excludeSwitches',['enable-automation'])#这里也要输入browser = Chrome(options=option)browser.get(url)

二:定位元素,并进行循环遍历 到了这一步可是重点了

可以看到上图,大家按着顺序走就行,按住crtl+f 出现那个框框,把copy-xpath粘贴s上去,看到是1 of 1 ,这很正常,我们所定位的只有一个元素,要把一页的数据搜索出来很简单,把li[1]的[1]去掉就像了,【中括号也要一起去掉】

下面看下代码:

n = 1 #为后面切换窗口循环做准备#把要取的类名统统取出来,找到他,注意是elements,所以不止是一个li_list = browser.find_elements_by_xpath('//*[@id="rankWrap"]/div[2]/ul/li')for li in li_list:browser.switch_to.window(browser.window_handles[-1])#歌曲名字li_name = li.find_element_by_xpath('./a').get_attribute('title')#歌曲的urlli_url = li.find_element_by_xpath('./a').get_attribute('href')#进行测试一下,是否走到这一步print(li_name, li_url)#点击标题,跳转# 把要取的类名统统取出来,找到他,注意是elements,所以不止是一个alist = browser.find_elements_by_class_name('pc_temp_songname')# 因为我们要对这个名字点击事件,循环他,在进行点击for a in alist:a.click()browser.switch_to.window(browser.window_handles[-1])time.sleep(1)#歌曲的下载路径song = browser.find_element_by_xpath('//*[@id="myAudio"]').get_attribute('src')#歌曲的名称song_name = browser.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[2]/div[1]/span').get_attribute('title')# print(song)

对于上述注释不理解的可以评论区问哟

三、窗口的转移

browser.switch_to.window(browser.window_handles[-1])
#关闭这些窗口
browser.close()
#切换上一个窗口
browser.switch_to.window(browser.window_handles[0])
#进行下一个点击事件
n += 1

四:获取下载的路径

对于新打开的窗口进行获取下载连接MP3:
找到flash播放插件就可以进行下载:【注意一下,这里如果有窗口弹出来的话不用进行理会,我们不需要点击什么,只是要一个元素而已,所以不管。】

五、保存到指定的文件里面:

 #创建歌曲的文件if not os.path.exists('./音乐'):os.mkdir('./音乐')#对新的发起一个请求song_data = requests.get(url=song, headers=headers).contentsong_path = '音乐/' + song_name#新进去with open(song_path, 'wb') as fp:fp.write(song_data)print(song_name, '下载成功!!!')

这里也与我前面几篇文章一样就行。
最后进行播放:

from pygame import mixer
import time
#进行初始化
mixer.init()
#获取路径
mixer.music.load('E:\python\program1\抓包\音乐\ 星辰大海')
#播放
mixer.music.play()
#播放的时间有多久
time.sleep(1000)
#关闭
mixer.music.stop()

六:总结

这次抓取的时候有个弹窗问题一直困扰我,就是点进歌曲里面要弹出窗口,第一次会出现,但后面再次进入就不会,网上找了很多,没咋个判断出来,希望会的小伙伴在评论区告知一下下。好了,随便下载歌曲都可以了。

结果如下:

点个赞把,亲

爬取酷狗歌曲并进行下载用的是selenuim相关推荐

  1. Python爬虫之爬取酷狗音乐歌曲

    Python爬虫之爬取酷狗音乐歌曲 1.安装第三方库 在Python的语言库中, 分为Python标准库和Python的第三方库. Python标准库是在你安装Python的时候已经包含在了安装目录下 ...

  2. Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)

    在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...

  3. Python爬虫入门——2. 2爬取酷狗音乐top1-500歌曲信息

    有了第一个程序的基础,我们现在来爬取酷狗音乐top500的歌曲信息.连接http://www.kugou.com/yy/rank/home/1-8888.html 我们第一个程序只爬取了一个页面的数据 ...

  4. Python爬虫案例:爬取酷狗音乐全排行榜歌曲

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本次目标 爬取酷狗音乐全站排行榜歌曲 目标地址 https://www.ku ...

  5. python爬取音乐排行_Python爬取酷狗Top500的歌曲!够你吹个小牛皮了吧

    一.准备工作 安装 requests 库和 beautifulsoup4 库: requests 库是处理HTTP请求的一个简洁且简单的第三方库:beautifulsoup4 库是一个解析和处理HTM ...

  6. Python爬取酷狗Top500的歌曲

    文章目录 文章目录 文章目录 一.准备工作 二.对网站HTML源码进行分析 三.爬取酷狗Top500的歌曲 一.准备工作 安装 requests 库和 beautifulsoup4 库: pip in ...

  7. 使用Python爬取酷狗TOP500歌曲

    一个简单的Python案例,爬取酷狗TOP500歌曲,仅供学习参考 import requests from bs4 import BeautifulSoup import time# 爬取酷狗TOP ...

  8. Python爬取酷狗音乐-详解(多图预警)

    目录 1.前言 2.分析一下 1. 2. 3. 3.代码解释 4.完整代码 5.结语 1.前言 前面发布了一篇关于QQ音乐爬取的教程,但对于我们这种文艺青年来说,一个平台的歌曲怎么够我们听的,也是因为 ...

  9. 4步实现Java爬取酷狗音乐,so easy。

    jar包:包括:jsoup.HttpClient.net.sf.json大家可以自行去下载 1.分析是否能获得TOP500歌单 首先,打开酷狗首页查看酷狗TOP500, 是真的只让看这些还是能找到其余 ...

最新文章

  1. centos 6.0 启动失败提示。
  2. java rpm 安装路径_如何查找rpm方式安装的软件路径
  3. Powerdesigner 在线打开 不用安装客户端 访问pdm,ldm文件
  4. Ampere Altra Max 对比测试数据公布,性能能效双领先
  5. 使用正则表达式实现将浮点数点左边的数每三位添加一个逗号
  6. 1用switch语句从控制台输入100以内的分数判断优秀,良好,及格不及格属于哪一个区间
  7. seqkit根据基因id_ID转换靠的是深厚的背景知识加上一点代码技巧
  8. bagging算法_Bagging与随机森林算法及其变种
  9. C#窗体应用实战项目——绩效考核管理系统
  10. bzoj4011落忆枫音
  11. 根据经纬度查询位置百度api
  12. 人脸面部情绪识别(一)
  13. win7远程服务器管理工具
  14. 2023养老展/山东养老服务业展/济南老年用品展/老龄产业展
  15. 绿能宝承载的不单是绿能宝的梦想
  16. mx250是什么_分析mx250显卡什么级别
  17. 业务系统成功微服务化改造的实施步骤
  18. Android关于Firebase集成及示例及用法(开发反编译)
  19. html中列表前面的序号带圆圈,js动态添加带圆圈序号列表方法
  20. cf体验服老显示与服务器出现异常,穿越火线体验服出现网络异常

热门文章

  1. 配置 PyCharm for Linux 设置启动图标 pycharm-edu-2021.3.1 Ubuntu 18.04.6 LTS
  2. ip netns命令详解
  3. 项目经历怎么写_工程监理简历范文,【工作经历+项目经验+自我评价】怎么写...
  4. 哔哩哔哩bilibili 直播间全屏发弹幕
  5. 企业做seo的优势在哪些地方
  6. springboot文件上传和下载(批量/单个)
  7. android 如何分析卡顿问题
  8. html5视频支持qsv吗,视频格式转换神器:qlv、qsv、kux统统一网打尽
  9. JavaScript之 高性能读书笔记
  10. 英雄无敌3 Heroes III 里面的英语单词 (转)