欢迎光临
我们一直在努力

如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲

前言

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

私信小编01即可获取大量Python学习资料

今天来教大家一个自动化爬虫的工具 selenium

selenium

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

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

项目目标

今天的目标是爬取付费歌曲

受害者地址

http://tool.liumingye.cn/music/?page=homePage

 

先给大家看下效果

爬虫代码

导入工具

import time
import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

解析网页

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

 

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

 

 

driver = webdriver.Chrome(executable_path='chromedriver.exe', options=chrome_options)
# key_world = input('请输入歌手名字:')
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 = 'C:\Users\Administrator\Desktop\音乐\' + 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
    name = li.find_element_by_css_selector('.aplayer-list-title').text
    li.find_element_by_css_selector('.aplayer-list-download').click()
    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')
    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()

运行代码后,效果如下

 

 

 

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:英协网 » 如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲

分享到: 生成海报
avatar

热门文章

  • 评论 抢沙发

    • QQ号
    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址

    登录

    忘记密码 ?

    切换登录

    注册

    我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活