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

本文介绍了如何利用Selenium这个Web自动化测试工具爬取付费音乐。通过模拟用户操作,自动化填充歌手名称并搜索,然后滚动页面下载音乐。文章详细展示了代码实现过程,包括寻找数据接口、发送POST请求、解析DOM元素以及文件保存等步骤。
摘要由CSDN通过智能技术生成

前言

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

今天来教大家一个自动化爬虫的工具 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()

运行代码后,效果如下

本文分享 CSDN - 松鼠爱吃饼干。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值