iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中怎么使用 Selenium下载歌曲
  • 542
分享到

Python中怎么使用 Selenium下载歌曲

2023-06-17 03:06:45 542人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章给大家介绍python中怎么使用 selenium下载歌曲,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。步骤一:进入酷狗主页,F12查看元素,,通过selenium.WEBdriver的send_keys()方

这篇文章给大家介绍python中怎么使用 selenium下载歌曲,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

步骤一:

进入酷狗主页,F12查看元素,,通过selenium.WEBdriver的send_keys()方法给send_input类传参,即用作用户的输入,然后通webdriver.click()方法点击搜索按钮,得到搜索结果列表。这里会有一个js重定向,通过webdriver.current_ur就可以了,,切记一点!传入的参数需要经过unicode编码(.decode(‘gb18030′))效果一样),否则如果有中文会乱码。。(来自被深深困扰的我)

Python中怎么使用 Selenium下载歌曲

步骤二:

查看元素里每首歌的路径,发现每首歌的路径只有<li>不同,于是通过对li的迭代来获取每一首歌的xpath,并输出歌曲名字的元素,然后依旧通过webdriver的click()方法点击歌曲链接,得到歌曲播放页面,这里没有什么难点,都是常规操作。需要注意的是,这里的歌曲链接也包含一个js的重定向,但不一样的是浏览器会打开一个新的页面(至少火狐会),可以在click()方法后通过webdriver.switch_to_window()方法跳转到新打开的页面

Python中怎么使用 Selenium下载歌曲

步骤三:

进入播放页面后通过xpath找到播放源文件链接(强推firepath,xpath神器啊)但发现这里依然有一个js渲染,来生成播放源链接,直接提取<src>标签会显示为空,于是继续webdriver,调用的浏览器会自动解析js脚本,解析完成后提取<src>得到歌曲链接,使用urllib的urlretrueve()下载即可

Python中怎么使用 Selenium下载歌曲

代码如下:

#coding=utf-8 from selenium.webdriver.remote.webelement import WebElement from selenium import webdriver from selenium.webdriver import ActionChains from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import StaleElementReferenceException from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.common.by import By import time import urllib  #歌曲名 mname = ''  #JS重定向 def wait(driver):     elem = driver.find_element_by_tag_name('html')     count = 0     while True:         count += 1         if count > 20:             print('chao shi le')             return         time.sleep(.5)         try:             elem == driver.find_element_by_tag_name('html')         except StaleElementReferenceException:             return  #获取url def geturl():     input_string = raw_input('>>>please input the search key:')     driver = webdriver.Chrome()     url = 'Http://www.kuGou.com/'     driver.get(url)     a=driver.find_element_by_xpath('html/body/div[1]/div[1]/div[1]/div[1]/input') #输入搜索内容     a.send_keys(input_string.decode('gb18030'))     driver.find_element_by_xpath('html/body/div[1]/div[1]/div[1]/div[1]/div/i').click() #点击搜索     result_url = driver.current_url     driver.quit()     return result_url   #显示搜索结果 def show_results(url):     driver = webdriver.Chrome()     driver.get(url)     time.sleep(3)     for i in range(1,1000):         try:             print '%d. '%i + driver.find_element_by_xpath(".//*[@id='search_song']/div[2]/ul[2]/li[%d]/div[1]/a"%i).get_attribute('title')  #获取歌曲名         except NoSuchElementException as msg:             break     choice = input(">>>Which one do you want(you can input 'quit' to goback(带引号)):")     if choice == 'quit':   #从下载界面退回         result = 'quit'     else:         global mname         mname = driver.find_element_by_xpath(".//*[@id='search_song']/div[2]/ul[2]/li[%d]/div[1]/a"%choice).get_attribute('title')         a = driver.find_element_by_xpath(".//*[@id='search_song']/div[2]/ul[2]/li[%d]/div[1]/a"%choice)         actions = ActionChains(driver)         actions.move_to_element(a)         actions.click(a)         actions.perfORM()         #wait(driver)         driver.switch_to_window(driver.window_handles[1])  #跳转到新打开的页面         result = driver.find_element_by_xpath(".//*[@id='myAudio']").get_attribute('src') #获取播放元文件url         driver.quit()     return result   #下载回调 def cbk(a, b, c):     per = 100.0 * a * b / c       if per > 100:         per = 100     print '%.2f%%' % per       def main():     print'***********************欢迎使用GREY音乐下载器********************************'     print'                                                      directed by GreyyHawk'     print'**************************************************************************'     time.sleep(1)     while True:         url = geturl()         result = show_results(url)         if result == 'quit':             print'\n'             continue         else:             local = 'd://%s.mp3'%mname             print 'download start'             time.sleep(1)             urllib.urlretrieve(result, local, cbk)             print 'finish downloading %s.mp3'%mname + '\n\n'    if __name__ == '__main__':   main()

效果:

Python中怎么使用 Selenium下载歌曲

关于Python中怎么使用 Selenium下载歌曲就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Python中怎么使用 Selenium下载歌曲

本文链接: https://www.lsjlt.com/news/286964.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中怎么使用 Selenium下载歌曲
    这篇文章给大家介绍Python中怎么使用 Selenium下载歌曲,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。步骤一:进入酷狗主页,F12查看元素,,通过selenium.webdriver的send_keys()方...
    99+
    2023-06-17
  • python selenium渲染怎么下载中间件
    本篇内容介绍了“python selenium渲染怎么下载中间件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明过滤需要selenium渲...
    99+
    2023-06-20
  • Linux系统下怎么使用Flacon导入CD音频文件中的歌曲
    本篇内容介绍了“Linux系统下怎么使用Flacon导入CD音频文件中的歌曲”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Flacon 是一...
    99+
    2023-06-12
  • python使用selenium 打开谷歌浏览器闪退, 怎么解决
    在使用 Selenium 操作 Chrome 浏览器时,如果 Chrome 浏览器闪退,则可能是以下几个方面出现了问题: 1. Chromedriver 版本与 Chrome 浏览器版本不匹配 你需要...
    99+
    2023-09-02
    python selenium chrome
  • python中怎么使用requests下载文件
    这篇文章主要介绍了python中怎么使用requests下载文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中怎么使用requests下载文件文章都会有所收获,下面我们一起来看看吧。使用reque...
    99+
    2023-06-29
  • Python怎么使用Selenium WebDriver
    本篇内容主要讲解“Python怎么使用Selenium WebDriver”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么使用Selenium WebDrive...
    99+
    2023-07-06
  • 怎么用python+selenium实现下拉框
    这篇文章主要介绍“怎么用python+selenium实现下拉框”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用python+selenium实现下拉框”文章能帮助大家解决问题。基本脚手架代码:...
    99+
    2023-06-29
  • 怎么使用Python爬取网易云歌曲评论实现词云图
    这篇文章主要讲解了“怎么使用Python爬取网易云歌曲评论实现词云图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python爬取网易云歌曲评论实现词云图”吧!环境使用Python ...
    99+
    2023-06-30
  • 如何利用Selenium批量下载100首网易云热歌榜音乐
    这篇文章主要介绍“如何利用Selenium批量下载100首网易云热歌榜音乐”,在日常操作中,相信很多人在如何利用Selenium批量下载100首网易云热歌榜音乐问题上存在疑惑,小编查阅了各式资料,整理出简单...
    99+
    2024-04-02
  • 怎么使用Python进行下载
    本篇内容介绍了“怎么使用Python进行下载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.使用requests你可以使用requests...
    99+
    2023-06-15
  • 怎么使用python画曲线图
    要使用Python画曲线图,可以使用matplotlib库。下面是一个简单的示例代码:```pythonimport matplot...
    99+
    2023-10-12
    python
  • Python中Selenium的基本使用
    目录 一、Selenium是什么? 二、使用步骤   1.引入库   2.下载浏览器驱动   3.配置浏览器驱动    4.创建WebDriver对象   4.1.options    4.2.service   4.3...
    99+
    2023-09-29
    selenium python
  • windows中谷歌浏览器怎么设置下载位置
    这篇文章主要介绍了windows中谷歌浏览器怎么设置下载位置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇windows中谷歌浏览器怎么设置下载位置文章都会有所收获,下面我们一起来看看吧。谷歌浏览器设置下载位置...
    99+
    2023-07-02
  • Selenium IDE怎么使用
    本篇内容介绍了“Selenium IDE怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!安装从Chrome或Firefox网络商店安装...
    99+
    2023-06-03
  • Python中Selenium怎么安装
    在Python中安装Selenium,可以通过以下步骤进行:1. 确保已经安装了Python。可以在命令行中输入`python --...
    99+
    2023-08-18
    Python Selenium
  • 怎么在Python中使用Selenium对Cookie进行操作
    这篇文章给大家介绍怎么在Python中使用Selenium对Cookie进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众...
    99+
    2023-06-14
  • Python中selenium有什么用
    小编给大家分享一下Python中selenium有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python爬虫、数据分析、网站开发等案例教程视频免费在线观...
    99+
    2023-06-15
  • python爬虫之selenium模块怎么使用
    这篇文章主要介绍了python爬虫之selenium模块怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python爬虫之selenium模块怎么使用文章都会有所收获,下面我们一起来看看吧。一、什么是Se...
    99+
    2023-06-30
  • Linux中怎么使用Aria2下载文件
    Linux中怎么使用Aria2下载文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Aria2是一个免费的开源轻量级多协议命令行实用程序,可以从Internet上下载文件。...
    99+
    2023-06-28
  • python中怎么使用tensorflow实现数据下载与读取
    本篇内容介绍了“python中怎么使用tensorflow实现数据下载与读取”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、mnist数据...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作