首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python爬虫:爬取某q音乐歌曲

Python爬虫:爬取某q音乐歌曲

作者头像
@莜莜
修改于 2021-06-24 06:27:42
修改于 2021-06-24 06:27:42
1.4K00
代码可运行
举报
文章被收录于专栏:爬小虫爬小虫
运行总次数:0
代码可运行

 “相信大家都很喜欢听音乐,在各种音乐平台上,今天为大家介绍一个利用Python爬取某Q付费音乐的案列,欢迎大家一起学习,一起交流,共同进步!”

找到我们要爬取的歌曲主页

    2.获取歌曲songmid

    3.进入到歌曲播放页找到音频地址

    4.查看音频地址需要的参数

    5.查找vkey参数是怎么来的

    我们再来看返回下载地址和vkey参数的请求地址都需要什么参数呢?

    6.到这里加密参数我们已经弄清楚了,可以开始写代码了。注意!!:网页版的qq音乐它只展示几首音乐,全部音乐需要在客户端里面听。还有代码里面的2325794997是我的qq号 你们可以写自己的也可以写0

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from lxml import etreeimport requestsimport randomimport jsonheaders = [    {        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1)'' AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/86.0.4240.111 Safari/537.36'},    {        'User-Agent': "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)"},    {        'User-Agent': "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)"},    {        'User-Agent': "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)"},    {        'User-Agent': "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)"},    {'User-Agent': "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6"},    {'User-Agent': "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1"},    {'User-Agent': "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0"},    {'User-Agent': "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5"}]

def get_songmid(url):    '''    获取歌曲id和名称,歌手    :param url:    :return:    '''    response = requests.get(url=url, headers=random.choice(headers), timeout=5).text    page_html = etree.HTML(response)    author = page_html.xpath('/html/body/div[2]/div[1]/div/div[1]/h1[2]/@title')[0]    a_list = page_html.xpath('/html/body/div[2]/div[2]/div[1]/div[2]/ul[2]/li/div/div[3]/span/a')    for a in a_list:        songmid = a.xpath('./@href')[0][22:-5]        name = a.xpath('./@title')[0]        get_vkey(songmid, name,author)

def get_vkey(songmid, name,author):    '''    获取vkey    :param songmind:    :param name:    :return:    '''    data = {"req": {"module": "CDN.SrfCdnDispatchServer", "method": "GetCdnDispatch",                    "param": {"guid": "5831199011", "calltype": 0, "userip": ""}},            "req_0": {"module": "vkey.GetVkeyServer", "method": "CgiGetVkey",                      "param": {"guid": "5831199011", "songmid": [songmid], "songtype": [0],                                "uin": "2325794997", "loginflag": 1, "platform": "20"}},            "comm": {"uin": 2325794997, "format": "json", "ct": 24, "cv": 0}} 
    url_vkey_get = "https://u.y.qq.com/cgi-bin/musicu.fcg?callback=“”&g_tk=352421221&jsonpCallback=getplaysongvkey7281977218930408&loginUin=1484232187&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&data="    ret = requests.get(url=url_vkey_get+json.dumps(data),headers=random.choice(headers)).json()    purl = ret['req_0']['data']['midurlinfo'][0]['purl']#可以获取vkey 但是purl里面包含vkey是音乐下载地址    if purl:        download_music(purl,name,author)def download_music(purl,name,author):    ret = requests.get('http://106.120.158.153/amobile.music.tc.qq.com/'+purl,headers=random.choice(headers)).content    with open(f'{name}-{author}.mp3','wb') as f:        f.write(ret)    print(f'{name}-{author}','下载完成')
if __name__ == '__main__':    url = 'https://y.qq.com/n/yqq/singer/001Lr98T0yEWAk.html' #按歌手分类的地址    get_songmid(url)

    7.成果展示

这是保存下来的爬取某q音乐歌曲的方法,如有不足之处或更多技巧,欢迎指教补充。愿本文的分享对您之后爬虫有所帮助。谢谢~

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python爬虫Scrapy爬西刺代理网站匿名ip
代理池ip爬取 #0 GitHub https://github.com/Coxhuang/scrapy_proxy #1 环境 Python3.7.3 Scrapy==1.6.0 #2 需求 爬取ip代理网站免费的ip 把不能用的ip过滤掉 目标站点 https://www.xicidaili.com/nt/ #3 准备 #3.1 新建一个scrapy项目 scrapy startproject proxy_ips . └── proxy_ips ├── proxy_ips │ ├──
Autooooooo
2020/11/09
6120
Python爬虫Scrapy爬西刺代理网站匿名ip
一个小时多点,完成scrapy爬取官方网站新房的数据
在前几天,接到一个大学生的作业的爬虫单子,要求采用scrapy爬取链家官方网站新房的数据(3-5页即可,太多可能被封禁ip),网址:https://bj.fang.lianjia.com/loupan/,将楼盘名称、价格、平米数等(可以拓展)数据保存到一个json文件中。
润森
2020/05/04
1.4K0
Python爬取京东笔记本电脑,来看看那个牌子最棒
二、知识要求三、过程分析1.观察主页面和每个电脑界面的网址2.寻找每个电脑的id3.找到存放电脑的价格和评论数的信息4.爬取信息的思路四、urllib模块爬取京东笔记本电脑的数据、并对其做一个可视化实战五、可视化结果1.运行结果2.可视化结果
小小詹同学
2019/09/26
1.4K0
Python爬取京东笔记本电脑,来看看那个牌子最棒
Python爬取哔哩哔哩(bilibili)视频
本篇文章主要给大家讲解下如实使用python 爬取哔哩哔哩中的视频,首先我是一名大数据开发工程师,爬虫只是我的一个业余爱好,喜欢爬虫的小伙伴可以一起交流。好了多了就不多说了喜欢的朋有可以收藏,转发请复原文链接谢谢。
大数据老哥
2021/02/04
2.8K1
Python爬取哔哩哔哩(bilibili)视频
python爬虫反爬取---设置User Agent自动变换header文件
__author__ = 'Lee' import requests import random #随机数模块 def requests_headers(): head_connection = ['Keep-Alive','close'] head_accept = ['text/html,application/xhtml+xml,*/*'] head_accept_language = ['zh-CN,fr-FR;q=0.5','en-US,en;q=0.8,zh-Hans-
98k
2018/04/11
1.7K0
用Python搭建一个简单的代理池
这里记得一定要设置随机选取headers以及睡眠时间,因为我就没有设置,然后就被封了...
小F
2020/10/09
1.1K0
用Python搭建一个简单的代理池
爬取IP代理偷偷给文章刷阅读量一、前言二、代码三、小结
原本是想开始维护IP代理池,继续python爬虫进阶之路,但在看其他人写的IP代理爬取的文章时,发现可以把爬下来的IP用来给CSDN博客里的文章刷阅读量,于是就刷了1k+的阅读量......
古柳_DesertsX
2018/08/21
9230
爬取IP代理偷偷给文章刷阅读量一、前言二、代码三、小结
Python3爬虫学习.md
(1) urllib 简单的爬取指定网站 (2) Scrapy 爬虫框架 (3) BeautifulSoup 爬虫解析
全栈工程师修炼指南
2020/10/23
8760
Python3爬虫学习.md
Scrapy之设置随机User-Agent和IP代理
大多数情况下,网站都会根据我们的请求头信息来区分你是不是一个爬虫程序,如果一旦识别出这是一个爬虫程序,很容易就会拒绝我们的请求,因此我们需要给我们的爬虫手动添加请求头信息,来模拟浏览器的行为,但是当我们需要大量的爬取某一个网站的时候,一直使用同一个User-Agent显然也是不够的,因此,我们本节的内容就是学习在scrapy中设置随机的User-Agent。Scrapy中设置随机User-Agent是通过下载器中间件(Downloader Middleware)来实现的。
菲宇
2022/05/06
1.2K0
Scrapy之设置随机User-Agent和IP代理
python爬取链家租房之获取房屋的链接和页面的详细信息
因为期末考试的缘故,本打算一个星期结束的爬虫,拖了很久,不过,也有好处:之前写的时候总是被反爬,这几天复习之余写了些反爬取的py code 下面发出来和大家探讨 做了些反爬取的手段 随机获取一个headers headers.py __author__ = 'Lee' import requests import random #随机数模块 def requests_headers(): head_connection = ['Keep-Alive','close'] head_acce
98k
2018/04/11
1.4K0
小爬虫之爬取豆瓣电影排行榜1.技术路线2.任务3.分析4.运行结果5.源码
1.技术路线 python 3.6.0 scrapy 1.4.0 2.任务 爬取豆瓣电影排行榜电影相关信息 2.1查看豆瓣的robots User-agent: * Disallow: /subject_search Disallow: /amazon_search Disallow: /search Disallow: /group/search Disallow: /event/search Disallow: /celebrities/search Disallow: /location/dram
JasonhavenDai
2018/04/11
8140
小爬虫之爬取豆瓣电影排行榜1.技术路线2.任务3.分析4.运行结果5.源码
Python 爬取留言板留言(三):多进程版+selenium模拟
文章目录 一、项目概述 二、项目实施 1.导入所需要的库 2.全局变量和参数配置 3.产生随机时间和用户代理 4.获取领导的fid 5.获取领导所有留言链接 6.获取留言详情 7.获取并保存领导所有留
cutercorley
2020/07/23
2.8K0
Python 爬取留言板留言(三):多进程版+selenium模拟
基于Python3的资产处理工具「bufferfly」
攻防演习/渗透测试资产处理小工具,对攻防演习/渗透测试前的信息搜集到的大批量资产/域名进行存活检测、获取标题头、语料提取、常见Web端口检测等。
HACK学习
2019/08/20
1.3K0
基于Python3的资产处理工具「bufferfly」
Scrapy爬取美女图片第四集 突破反爬虫(上)
本周又和大家见面了,首先说一下我最近正在做和将要做的一些事情。 技术方面的事情:本次端午假期没有休息,正在使用flask开发自己的个人博客框架,之后我的技术教程将会陆续更新flask方面的内容,尽可能的形成一套完整的flask开发教程。之后打算再开通一个微信公众号,自己使用python开发微信公众号后台,给大家提供一些生活上的服务,例如及时提醒一些商家优惠信息,跟踪快递,提醒天气等等,大家如果有什么好的想法,可以给我留言,你的点子如果被采用了,将会出现在贡献者名单中。
七夜安全博客
2018/06/26
1.3K0
Python 爬取留言板留言(二):多线程版+selenium模拟
文章目录 一、项目概述 二、项目实施 1.导入所需要的库 2.全局变量和参数配置 3.产生随机时间和用户代理 4.获取领导的fid 5.获取领导所有留言链接 6.获取留言详情 7.获取并保存领导所有留
cutercorley
2020/07/23
2.7K0
Python 爬取留言板留言(二):多线程版+selenium模拟
Python爬虫之scrapy中间件的使用
但在scrapy默认的情况下 两种中间件都在middlewares.py一个文件中
海仔
2020/09/28
8920
实操 | 从0到1教你用Python来爬取整站天气网
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
润森
2019/09/17
7810
实操 | 从0到1教你用Python来爬取整站天气网
使用Python爬虫爬取妹子图图片
        最近在学习Python的爬虫部分。看到有网友在分享使用爬虫爬取各种网站的图片的代码,也想自己写个玩玩。今天花时间分析了一下妹子图网站的结构和HTML代码,使用urllib2和BeautifulSoup写出了一个自动下载妹子图网站图片的脚本。
py3study
2020/01/06
1.9K0
爬虫入门经典(二十三) | fiddler抓包爬取QQ音乐
  ♥各位如果想要交流的话,可以加下QQ交流群:974178910,里面有各种你想要的学习资料。♥
不温卜火
2020/11/26
4.6K0
爬虫入门经典(二十三) | fiddler抓包爬取QQ音乐
Scrapy爬取知乎------配置代理IP和UA
爬取知乎,如果想大量并发的话的就必须配置代理IP。因为知乎的反爬策略就是并发过大就会限制你的爬虫,页面会自动重定向到验证码页面。所以防止你的爬虫被禁,设置个代理和UA还是很有必要的。
andrew_a
2019/07/30
1K0
推荐阅读
相关推荐
Python爬虫Scrapy爬西刺代理网站匿名ip
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验