python 爬取歌曲程序_如何让程序像人一样的去批量下载歌曲?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()
运行代码后,效果如下
本文分享 CSDN - 松鼠爱吃饼干。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
python 爬取歌曲程序_如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲...相关推荐
- 视频教程-微信小程序系统教程python版[3/3阶段]_微信小程序支付-手游开发
微信小程序系统教程python版[3/3阶段]_微信小程序支付 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试 ...
- 图片的批量下载 和 爬虫爬取图片数据集
图片的批量下载 和 爬虫爬取图片数据集 1.图片的批量下载 1.图片的批量下载 数据集是深度学习的一切,没有数据集它什么也不是,现在你知道数据集很重要了吧 代码: ''' 项目名称:爬取公章数据 创建 ...
- Sentinel-2 (哨兵2号) 数据批量下载教程 [python]
Sentinel-2 [哨兵2号] 数据批量下载教程 [python] 1. 选择数据 2. 数据下载 2.1 下载链接文件 2.2 安装Python及data_downloader包 2.3 创建. ...
- ECMWF等大气数据批量下载(Python API)详细步骤
ECMWF等大气数据批量下载(Python API) 遥感方向做热红外温度反演,不可避免的要用到大气廓线数据,大气数据具有实时性,比如2018年9月1日的早上8点的影像,为了提高反演精度就需要用到时间 ...
- python perl 比较生信_科学网—生信人写程序1. Perl语言模板及配置 - 刘永鑫的博文...
科学网对Markdown排版支持较差,对格式不满意的用户请跳转至 CSDN 或微信阅读: 如果感觉文章对您有帮助,想继续阅读同类文章,请扫描下方二维码关注"生信宝典"公众号,每天接 ...
- python写一个记单词程序_杨鹏记单词法安排表自动生成算法(Python实现)
这几天在寻思着要背托福词汇,找了个方法想试一试,这个方法就是杨鹏单词记忆法,是一种根据艾宾浩斯遗忘曲线的规律来制定的学习方法,有兴趣的可以点击https://www.douban.com/note/2 ...
- 微信小程序python解析获取用户手机号_微信小程序获取用户手机号
获取微信用户绑定的手机号,需先调用wx.login接口. 小程序获取code. 后台得到session_key,openid. 组件触发getPhoneNumber 因为需要用户主动触发才能发起获取手 ...
- php网页抓取浏览者手机号码_微信小程序开发之获取用户手机号码(php接口解密)...
后边要做一个微信小程序,并要能获取用户微信绑定的手机号码.而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如 ...
- python图片分析中央气象台降水量预报_获取中央气象台网的气象数据 全流程技术解析(python 爬虫)...
一.Python环境搭建 下载安装python 下载安装PyCharm,Community版即可 理论上应该先安装python再安装IDE(PyCharm),必要时按网上要求进行环境变量设置. 二.爬 ...
最新文章
- 北斗芯片服务器,北斗芯片:GPS定位系统,正是再见!你期待吗?
- oracle 三层嵌套查询,oracle 三层嵌套分页查询
- 题目1076:N的阶乘
- 反射和内省_单例设计模式–内省和最佳实践
- [转]MPlayer快捷键参数设置--系统开销最少的影音播放器
- 我的世界linux开服权限不足,我的世界路由器开服怎么获得超级管理员权限
- 不好意思,00后黑客CEO登场了!
- linux统计所有进程总共占用多少内存?
- Vue 组件间的传值(通讯)
- 继续教育计算机组成原理a试卷,计算机组成原理试卷.docx
- IE网页木马 - 使用 JS 实现打开网页后直接运行木马程序
- 【 PG 入门系列 】PostgreSQL的客户端工具(五)
- 如何配置服务器的安全?
- Ubuntu 16.04 安装SecureCRT破解版
- 射频识别技术IC卡——通讯协议概述
- PHP为什么会被认为是草根语言?
- PTA——是不是太胖了
- FTX交易平台与AZA Finance达成合作,推动非洲数字经济发展
- 某代工大厂的勒索病毒处理案例
- the page has expired due to inactivity. please refresh and try again