前言

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

今天来教大家一个自动化爬虫的工具 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爬取付费歌曲...相关推荐

  1. 视频教程-微信小程序系统教程python版[3/3阶段]_微信小程序支付-手游开发

    微信小程序系统教程python版[3/3阶段]_微信小程序支付 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试 ...

  2. 图片的批量下载 和 爬虫爬取图片数据集

    图片的批量下载 和 爬虫爬取图片数据集 1.图片的批量下载 1.图片的批量下载 数据集是深度学习的一切,没有数据集它什么也不是,现在你知道数据集很重要了吧 代码: ''' 项目名称:爬取公章数据 创建 ...

  3. Sentinel-2 (哨兵2号) 数据批量下载教程 [python]

    Sentinel-2 [哨兵2号] 数据批量下载教程 [python] 1. 选择数据 2. 数据下载 2.1 下载链接文件 2.2 安装Python及data_downloader包 2.3 创建. ...

  4. ECMWF等大气数据批量下载(Python API)详细步骤

    ECMWF等大气数据批量下载(Python API) 遥感方向做热红外温度反演,不可避免的要用到大气廓线数据,大气数据具有实时性,比如2018年9月1日的早上8点的影像,为了提高反演精度就需要用到时间 ...

  5. python perl 比较生信_科学网—生信人写程序1. Perl语言模板及配置 - 刘永鑫的博文...

    科学网对Markdown排版支持较差,对格式不满意的用户请跳转至 CSDN 或微信阅读: 如果感觉文章对您有帮助,想继续阅读同类文章,请扫描下方二维码关注"生信宝典"公众号,每天接 ...

  6. python写一个记单词程序_杨鹏记单词法安排表自动生成算法(Python实现)

    这几天在寻思着要背托福词汇,找了个方法想试一试,这个方法就是杨鹏单词记忆法,是一种根据艾宾浩斯遗忘曲线的规律来制定的学习方法,有兴趣的可以点击https://www.douban.com/note/2 ...

  7. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号

    获取微信用户绑定的手机号,需先调用wx.login接口. 小程序获取code. 后台得到session_key,openid. 组件触发getPhoneNumber 因为需要用户主动触发才能发起获取手 ...

  8. php网页抓取浏览者手机号码_微信小程序开发之获取用户手机号码(php接口解密)...

    后边要做一个微信小程序,并要能获取用户微信绑定的手机号码.而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如 ...

  9. python图片分析中央气象台降水量预报_获取中央气象台网的气象数据 全流程技术解析(python 爬虫)...

    一.Python环境搭建 下载安装python 下载安装PyCharm,Community版即可 理论上应该先安装python再安装IDE(PyCharm),必要时按网上要求进行环境变量设置. 二.爬 ...

最新文章

  1. 北斗芯片服务器,北斗芯片:GPS定位系统,正是再见!你期待吗?
  2. oracle 三层嵌套查询,oracle 三层嵌套分页查询
  3. 题目1076:N的阶乘
  4. 反射和内省_单例设计模式–内省和最佳实践
  5. [转]MPlayer快捷键参数设置--系统开销最少的影音播放器
  6. 我的世界linux开服权限不足,我的世界路由器开服怎么获得超级管理员权限
  7. 不好意思,00后黑客CEO登场了!
  8. linux统计所有进程总共占用多少内存?
  9. Vue 组件间的传值(通讯)
  10. 继续教育计算机组成原理a试卷,计算机组成原理试卷.docx
  11. IE网页木马 - 使用 JS 实现打开网页后直接运行木马程序
  12. 【 PG 入门系列 】PostgreSQL的客户端工具(五)
  13. 如何配置服务器的安全?
  14. Ubuntu 16.04 安装SecureCRT破解版
  15. 射频识别技术IC卡——通讯协议概述
  16. PHP为什么会被认为是草根语言?
  17. PTA——是不是太胖了
  18. FTX交易平台与AZA Finance达成合作,推动非洲数字经济发展
  19. 某代工大厂的勒索病毒处理案例
  20. the page has expired due to inactivity. please refresh and try again

热门文章

  1. 问题复盘:一个Redisson驱动源码BUG
  2. USV(Unmanned Surface Vessels)研究概况和发展趋势
  3. 因电子邮件礼节不佳而被解雇
  4. 一位MIT计算机博士对数学知识的思考
  5. [HDU-6304] Chiaki Sequence Revisited
  6. 中国证券金融股份有限公司的成立加速融资融券的发展
  7. 【Vue】后台管理系统
  8. C编译错误,运行错误以及常见问题。
  9. DVWA-不安全的验证码
  10. OpenGL字体绘制