前言

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

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

今天在网上闲逛的时候发一下比较好的音乐下载网址,输入歌手名字有歌手全部的音乐,还可以下载无损音质的音乐

作为爬虫的爱好者,对此不得给安排一下?

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

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


多尝试几次之后,发现data参数,是动态变化且没有规律~

其中涉及了JS动态数据加载,这样的话,JS解密…emmmmmmmmmm

我不会呀~ 凉凉了?

怎么可以就这样放弃了~ 不会JS 那咱们就用另外一种方法~ selenium

selenium

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

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

模块安装

pip install selenium

谷歌驱动下载地址:

https://npm.taobao.org/mirrors/chromedriver/
http://chromedriver.storage.googleapis.com/index.html

配置浏览器驱动:

将下载好的浏览器驱动解压,将解压出的 exe 文件放到Python的安装目录下,也就是和python.exe同目录即可。

或者

把驱动和代码放在同一个路径里面~

实现代码

import time
import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionschrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(executable_path='chromedriver.exe', options=chrome_options)
driver.implicitly_wait(10)
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 = '音乐\\' + 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 / 10js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % jdriver.execute_script(js)"""解析网站数据获取歌曲名字以及歌曲下载地址"""
lis = driver.find_elements_by_css_selector('#player li')
f = 0
for li in lis:f += 1time.sleep(1)name = li.find_element_by_css_selector('.aplayer-list-title').textli.find_element_by_css_selector('.aplayer-list-download').click()time.sleep(1)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')time.sleep(1)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实现爬虫程序,付费歌曲一样可以免费下载~相关推荐

  1. python网络爬虫程序技术,Python网络爬虫程序技术

    spContent=该课程是2018年广东省精品在线开放课程.课程主要以爬取学生信息.爬取城市天气预报.爬取网站图像.爬起图书网站图书.爬取商城网站商品等5个项目为依托,讲解Web.正则表达式.Bea ...

  2. python爬虫的具体流程_[专栏作家]【Python】爬虫程序 (一)

    原标题:[专栏作家][Python]爬虫程序 (一) 往往一提到爬虫程序,就感觉很高科技,一个带着大墨镜的家伙坐在满屏幕1010101010101...的电脑面前.然而,事实并非如此.--题记 何为爬 ...

  3. python网络爬虫程序技术_Python网络爬虫程序技术-中国大学mooc-题库零氪

    Python网络爬虫程序技术 - 中国大学mooc 已完结  94 项目1 爬取学生信息 1.2 Flask Web网站随堂测验 1.import flask app=flask.Flask(__n ...

  4. 在Python网络爬虫程序中使用线程池

    在Python网络爬虫程序中使用线程池 一.为什么需要使用线程池 二.线程池的使用 2.1 线程池的类与方法 2.2 使用线程池的一般步骤 三.在爬虫程序中使用线程池的实例 一.为什么需要使用线程池 ...

  5. python课程开课吧怎么样-开课吧最新廖雪峰Python商业爬虫课程,全套完整课程资源下载...

    课程目录 网络爬虫 简介 .爬虫的价值 .爬虫的合法性问题 .通用爬虫与聚焦爬虫 HTTP与HTTPS .HTTP原理 .HTTP和HTTPS .HTTP请求过程 .get和post请求 .常用请求报 ...

  6. python简单爬虫 指定汉字的笔画动图下载

    python简单爬虫 指定汉字的笔画动图下载 分析过程 打开网址首页http://www.hanzi5.com 选择一个字,比如"虐" 查看该汉字动图地址 右键该汉字动图,选择在新 ...

  7. 优质开源:共享图书小程序3.0 全新UI 免费下载

    优质开源:共享图书小程序3.0 全新UI 免费下载 全新上线的图书共享小程序3.0秉承简约的设计,提供不简约的交互体验 此源码,为开源源码,作者免费提供,一切收费的极为盗版.

  8. python如何爬虫-如何使用python写爬虫程序

    python编写爬虫的整体思路简单清晰,下面来说一下具体的步骤: 先来看代码,在解释,一个简单的网络爬虫示例import requests from bs4 import BeautifulSoup ...

  9. python网络爬虫程序_Python写的网络爬虫程序(很简单)

    Python写的网络爬虫程序(很简单) 这是我的一位同学传给我的一个小的网页爬虫程序,觉得挺有意思的,和大家分享一下.不过有一点需要注意,要用python2.3,如果用python3.4会有些问题出现 ...

  10. Python的爬虫程序

    用Python写一个小小的爬虫程序 作者:不详 来源:互联网 酷勤网收集 2007-11-11 摘要 爬虫工作的基本原理就是,给定一个初始的url,下载这个url的网页,然后找出网页上所有满足下载要求 ...

最新文章

  1. Flask-RESTful之请求处理
  2. android 沉浸式状态栏的三种方法
  3. [SDUT](3329)顺序表应用5:有序顺序表归并 ---有序表归并(线性表)
  4. 吴军:区块链催生了新的生产关系
  5. PHP会话控制考察点
  6. 老板眼中理想的“数据中台”,是不是真的存在?
  7. 2018年6月11日笔记
  8. 012-JDK可视化监控工具-jstack
  9. EXTJS4.0 EXT文件目录,本地加载文档,命名规范
  10. WordPress建立数据库连接时出错解决办法
  11. 怎样HTML做图片画廊,42个jQuery图片画廊插件
  12. 大数据项目流程(必须会)
  13. hdlbits刷题记录
  14. 如何从Word,Excel和PowerPoint文档中提取图像,文本和嵌入式文件
  15. 文本转语音TTS(文本阅读和视频配音制作)MP3
  16. java绘制棋盘_java绘制五子棋棋盘
  17. 迪赛智慧数——柱状图(象形标识图):全国历年结婚登记数
  18. Unity C#零基础入门笔记(一)Paws3D笔记
  19. xcode报错:multiple commands produce Code Signing “No account for team” failed to register bundle
  20. TexturePacker 图片打包工具使用

热门文章

  1. linux 锐捷 无法找到网卡信息,linux网卡驱动安装及锐捷使用
  2. 【转】Snagit 8.0使用方法
  3. 诺基亚HERE地图套件重返Windows应用商店
  4. 词法分析器|编译原理|陈火旺
  5. Observium Feature分析
  6. 架构之美:教你如何分析一个接口?
  7. [互联网思维(转)]互联网思维法则
  8. python论文排版格式_Latex论文排版工具使用教程
  9. 初入PLC编程(基本理论知识)
  10. Tomcat内存溢出及配置解决方案