DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录.
  • DmozDir.org
DMOZ目录快速登录入口-免费收录各类优秀网站的中文网站目录.由人工编辑,并提供网站分类目录检索及地区分类目录检索,是站长免费推广网站的有力平台!

Python实现爬虫程序,付费歌曲一样可以免费下载~

  • Python实现爬虫程序,付费歌曲一样可以免费下载~

  • 已被浏览: 35 次2020年10月26日    来源:  https://blog.csdn.net/fei347795790/article/details/109030233
  • 前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 PS 如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入 今天

    前言

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

    PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

    python免费学习资料以及群交流解答点击即可加入

    今天在网上闲逛的时候发一下比较好的音乐下载网址,输入歌手名字有歌手全部的音乐,还可以下载无损音质的音乐

    作为爬虫的爱好者,对此不得给安排一下?

    打开F12 开发者工具,不管三七二十一,先来一顿瞎分析~

    哦豁~ 这里面居然有数据接口,还是post请求,那这样的话就咱们就看它的data参数,那里有变化


    多尝试几次之后,发现data参数,是动态变化且没有规律~

    其中涉及了JS动态数据加载,这样的话,JS解密…emmmmmmmmmm

    我不会呀~ 凉凉了?

    怎么可以就这样放弃了~ 不会JS 那咱们就用另外一种方法~ selenium

    selenium

    Selenium 是一个 Web 的自动化测试工具,最初是为网站自动化测试而开发的,就像玩游戏用的按键精灵,可以按指定的命令自动操作。

    Selenium 测试工具直接操控浏览器中,就像真正的用户在操作一样。Selenium 可以根据的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生等。

    模块安装

    pip install selenium
    

    谷歌驱动下载地址:

    https://npm.taobao.org/mirrors/chromedriver/
    
    http://chromedriver.storage.googleapis.com/index.html
    

    配置浏览器驱动:

    将下载好的浏览器驱动解压,将解压出的 exe 文件放到Python的安装目录下,也就是和python.exe同目录即可。

    或者

    把驱动和代码放在同一个路径里面~

    实现代码

    import time
    import requests
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    driver = webdriver.Chrome(executable_path='chromedriver.exe', options=chrome_options)
    driver.implicitly_wait(10)
    driver.get('http://tool.liumingye.cn/music/?page=searchPage')
    driver.find_element_by_css_selector('#input').send_keys('张杰')
    driver.find_element_by_css_selector('#search  button:nth-child(2) i').click()
    
    """保存歌曲数据"""
    def download(name, url):
        filename = '音乐\\' + name + '.mp3'
        response = requests.get(url=url)
        with open(filename, mode='wb') as f:
            f.write(response.content)
    
    """模拟人去滚动鼠标向下浏览页面"""
    def drop_down():
        for x in range(1, 20, 10):
            time.sleep(0.5)
            j = x / 10
            js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
            driver.execute_script(js)
    
    
    """解析网站数据获取歌曲名字以及歌曲下载地址"""
    lis = driver.find_elements_by_css_selector('#player li')
    f = 0
    for li in lis:
        f += 1
        time.sleep(1)
        name = li.find_element_by_css_selector('.aplayer-list-title').text
        li.find_element_by_css_selector('.aplayer-list-download').click()
        time.sleep(1)
        down_url = driver.find_element_by_css_selector('#m-download > div > div > div.modal-body > div:nth-child(6) > div.input-group-append > a.btn.btn-outline-secondary.download').get_attribute('href')
        time.sleep(1)
        driver.find_element_by_css_selector('#m-download > div > div > div.modal-header > button').click()
        # time.sleep(1)
        download(name, down_url)
        print(name, down_url)
        if f % 10 == 0:
            drop_down()
    



    以上信息来源于网络,如有侵权,请联系站长删除。

    TAG:爬虫 程序 歌曲

  • 上一篇:STM32F103如何实现 FFT?
  • 与“Python实现爬虫程序,付费歌曲一样可以免费下载~”相关的资讯
  • 省钱兄(微信小程序、h5版本)uniapp淘宝客小程序源码商城前端源码
  • python应用(2):写个python程序给自己用
  • 早安打工人! 来把你的.NET程序模块化吧
  • Vue3教程:用 Vue3 开发小程序,这里有一份实际的代码案例!
  • 学会这 10000 个段子,成为 IT 职场幽默达人。Python 爬虫小课 8