Python3爬取全民k歌

环境 python3.5 + requests

1.通过歌曲主页链接爬取

首先打开歌曲主页,打开开发者工具(F12)。
选择Network,点击播放,会发现有一个请求返回的资源是媒体类型,点击查看这个请求,发现是歌曲的链接地址,请求为get请求。

现在查看网页源码发现这个链接隐藏在网页的JS脚本中,至此,我们只需要利用requests库爬取歌曲的主页,然后通过re模块将我们需要的歌曲连接提取出来即可。

2.通过用户主页爬取

首先我们观察用户首页,发现每次加载是8首歌曲,点击查看更多时地址栏并没有变化,可以判断歌单信息通过Ajax请求。

查看Network,找到歌单信息的请求,发现是GET方式,返回的是json,包含歌曲的主要信息。所以我们代码中通过修改get请求参数就可以获取所有的歌曲信息。

观察网页源码,发现歌曲链接是由https://node.kg.qq.com/play?s= + Shareid + &g_f=personal构成。

所以,我们通过歌曲首页,然后通过GET请求获取包含歌曲信息的json数据,链接为https://node.kg.qq.com/cgi/fcgi-bin/kg_ugc_get_homepage,请求中有个share_uid,这个参数是用户的ID,通过修改这个就可以获取不同的用户的歌曲了。
还有一个重要的参数是start,这个参数是用户的歌单的页数,依次+1就能获取所有的歌曲信息,当之后没有更多的歌曲时,可以发现返回的json数据中data内的参数has_more = 0,所以在代码中通过判断has_more来判断是否跳出循环。

获取到数据后,我们通过re模块来获取我们需要的shareid以及歌曲的名字等等信息。

获取了shareid后,我们就可以组建链接来下载歌曲了。

代码地址:https://github.com/Mrliu8023/getquanmin

python3爬取全民K歌的更多相关文章

  1. python爬取全名k歌

    python3 爬取全名k歌 代码: import re import requests import ssl ssl._create_default_https_context=ssl._creat ...

  2. Python爬取网易云歌单

    目录 1. 关键点 2. 效果图 3. 源代码 1. 关键点 使用单线程爬取,未登录,爬取网易云歌单主要有三个关键点: url为https://music.163.com/discover/playl ...

  3. Python学习-使用Python爬取陈奕迅新歌《我们》网易云热门评论

    <后来的我们>上映也有好几天了,一直没有去看,前几天还爆出退票的事件,电影的主题曲由陈奕迅所唱,特地找了主题曲<我们>的MV看了一遍,还是那个感觉.那天偶然间看到Python中 ...

  4. python3爬取网页

    爬虫 python3爬取网页资源方式(1.最简单: import'http://www.baidu.com/'print2.通过request import'http://www.baidu.com' ...

  5. python3爬取女神图片,破解盗链问题

    title: python3爬取女神图片,破解盗链问题 date: 2018-04-22 08:26:00 tags: [python3,美女,图片抓取,爬虫, 盗链] comments: true ...

  6. 【收藏】轻松导出全民K歌里任何人录制的短视频(MV)、歌曲的方法

    有一次想把她在全民K歌里唱过的所有歌下载到电脑上,然后合成一个视频.但不知道怎么导出全民K歌里的歌曲,经过各种百度Google终于找到了一个用起来很简单的工具.不仅可以下载保存任何人录制的歌曲,还可以 ...

  7. Python3 爬取微信好友基本信息,并进行数据清洗

    Python3 爬取微信好友基本信息,并进行数据清洗 1,登录获取好友基础信息: 好友的获取方法为get_friends,将会返回完整的好友列表. 其中每个好友为一个字典 列表的第一项为本人的账号信息 ...

  8. Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码

    题记: 11月14日早晨8点,人人网发布公告,宣布人人公司将人人网社交平台业务相关资产以2000万美元的现金加4000万美元的股票对价出售予北京多牛传媒,自此,人人公司将专注于境内的二手车业务和在美国 ...

  9. python3爬取微博评论并存为xlsx

    python3爬取微博评论并存为xlsx**由于微博电脑端的网页版页面比较复杂,我们可以访问手机端的微博网站,网址为:https://m.weibo.cn/一.访问微博网站,找到热门推荐链接我们打开微 ...

随机推荐

  1. Kendo UI grid 表格数据更新

    1.整行数据更新 //获取grid表格var table0 = $(updateTableID).data("kendoGrid");//删除第一条 var lastTableDa ...

  2. Python数学实现二元一次方程

    import cmath import math import sys def get_float(msg,allow_zero): x = None while x is None: try: x ...

  3. THINKPHP实现搜索分页保留搜索条件

    使用tp自带的分页类时,里面自带了POST查询条件保留机制,但是之针对于普通的map一维数组,如果包含like,gt等等比较复杂的查询条件则力不从心了. 带入查询条件 如果是POST方式查询,如何确保 ...

  4. iText、poi操作word2007(读取,生成)

    关于生成word文件以及插入文字.表格.图片等功能,我使用了poi和itext,因为poi插入图片的jar包我在网上查并不是太完全,也可能我没找到如何使用,所以插入图片我用的是itext iText所 ...

  5. java中的接口中的方法

    题目如下:(多选题)请选择以下接口定义正确的方法() A:public static void main (String[] args); B:private void test(); C:publi ...

  6. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

    Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 1.什么是Set?(what) Set是Collection容器的一个子接口,它不允许出现 ...

  7. oracle存储过程中使用execute immediate执行sql报ora-01031权限不足的问题

    oracle存储过程中使用execute immediate执行sql报ora-01031权限不足的问题 学习了:http://blog.csdn.net/royzhang7/article/deta ...

  8. 2 怎样解析XML文件或字符串

    1 引用XML文件 2 使用XMLReader解析文本字符串 3 使用XMLReader方法读取XML数据 详细代码实现例如以下: //初始化一个XML字符串 String xmlString = @ ...

  9. WPF获取和设置鼠标位置与progressbar的使用方法

    一.WPF 中获取和设置鼠标位置 方法一:WPF方法 Point p = Mouse.GetPosition(e.Source as FrameworkElement); Point p = (e.S ...

  10. HTML5客户端数据存储机制Web Storage和Web SQL Database

    引言 html5本地存储可以选择两种方式,一种是本地存储,一种是sqlite. 比如开发html5的购物车功能,就可以考虑选择其中之一,进行本地存储与操作. 又或者保存用户登录信息,可以使用local ...