如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2210字,纯文字阅读大概需要4分钟。
内容图文
![如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲](/upload/InfoBanner/zyjiaocheng/624/01fd1620e1b541d0b775e2e17e924188.jpg)
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
今天来教大家一个自动化爬虫的工具 selenium
selenium
Selenium 是一个 Web 的自动化测试工具,最初是为网站自动化测试而开发的,就像玩游戏用的按键精灵,可以按指定的命令自动操作。
Selenium 测试工具直接操控浏览器中,就像真正的用户在操作一样。Selenium 可以根据的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生等。
项目目标
今天的目标是爬取付费歌曲
受害者地址
http://tool.liumingye.cn/music/?page=homePage
![如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501032405103.jpg)
先给大家看下效果
爬虫代码
导入工具
import time
import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
解析网页
打开F12 开发者工具,不管三七二十一,先来一顿瞎分析~
![如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501032414268.jpg)
哦豁~ 这里面居然有数据接口,还是post请求,那这样的话就咱们就看它的data参数,那里有变化
![如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501032414710.jpg)
![如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501032415225.jpg)
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()
运行代码后,效果如下
![如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501032415642.jpg)
![如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501032415876.jpg)
![如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501032416662.jpg)
内容总结
以上是互联网集市为您收集整理的如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲全部内容,希望文章能够帮你解决如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。