使用requests获取网易云音乐API内容,结果不全(浏览器访问正常)

发布于 2022-09-07 20:32:25 字数 9178 浏览 26 评论 0

问题描述

在写一个爬取网易云歌单信息的小程序,由百度得知网易云的歌单API为:
http://music.163.com/api/play...,于是动手使用requests的get方法获取其内容,然而获取到的信息不全,疑似分步加载(而request只取了第一步的内容)

问题出现的环境背景及自己尝试过哪些方法

系统环境:Windows 7 x64,Python 2.7.13,requests 2.18.4
开发环境:PyCharm Community Version Edition 2017.2.3
尝试过的方法:

  • 直接获取
  • 保存为文件再读入
  • stream = True

相关代码

import requests
r = requests.get("http://music.163.com/api/playlist/detail?id=108101671")
quit()

你期待的结果是什么?实际看到的错误信息又是什么?

预计结果:
这个测试用歌单的playlist信息大约143KB,由浏览器直接打开此链接可以获取到完整信息(包含所有歌曲)。

错误信息:
只获取到了歌单信息(创建者,关注者等)和第一首歌的信息,如下所示:

{
    "result": {
        "subscribers": [
            
        ],
        "subscribed": false,
        "creator": {
            "defaultAvatar": false,
            "province": 120000,
            "authStatus": 0,
            "followed": false,
            "avatarUrl": "http://p1.music.126.net/y48eMGQJLogqD0-lPd0SCw==/109951163439237367.jpg",
            "accountStatus": 0,
            "gender": 1,
            "city": 120101,
            "birthday": 1004978050599,
            "userId": 90241279,
            "userType": 0,
            "nickname": "SHIIn_QInginz-",
            "signature": "(创建者个人签名,过长,略去)",
            "description": "",
            "detailDescription": "",
            "avatarImgId": 109951163439237367,
            "backgroundImgId": 109951163445428833,
            "backgroundUrl": "http://p1.music.126.net/11D84ZrUM0Lo6vAlEvkLxQ==/109951163445428833.jpg",
            "authority": 0,
            "mutual": false,
            "expertTags": null,
            "experts": null,
            "djStatus": 10,
            "vipType": 10,
            "remarkName": null,
            "avatarImgIdStr": "109951163439237367",
            "backgroundImgIdStr": "109951163445428833",
            "avatarImgId_str": "109951163439237367"
        },
        "artists": null,
        "tracks": [
            {
                "name": "UNHAPPY CLUB",
                "id": 1297493133,
                "position": 1,
                "alias": [
                    "日剧《警视厅零系:生活安全科万能咨询室第三季》主题曲 / ドラマ「警視庁ゼロ係~生活安全課なんでも相談室~ THIRD SEASON」主題歌"
                ],
                "status": 0,
                "fee": 8,
                "copyrightId": 663018,
                "disc": "1",
                "no": 1,
                "artists": [
                    {
                        "name": "神様、僕は気づいてしまった",
                        "id": 12203334,
                        "picId": 0,
                        "img1v1Id": 0,
                        "briefDesc": "",
                        "picUrl": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
                        "img1v1Url": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
                        "albumSize": 0,
                        "alias": [
                            
                        ],
                        "trans": "",
                        "musicSize": 0
                    }
                ],
                "album": {
                    "name": "Unhappy Club",
                    "id": 72056638,
                    "type": "EP/Single",
                    "size": 1,
                    "picId": 109951163433216811,
                    "blurPicUrl": "http://p1.music.126.net/RQ5-FtPi2rTFJ6DwWSPsZw==/109951163433216811.jpg",
                    "companyId": 0,
                    "pic": 109951163433216811,
                    "picUrl": "http://p1.music.126.net/RQ5-FtPi2rTFJ6DwWSPsZw==/109951163433216811.jpg",
                    "publishTime": 1532016000007,
                    "description": "",
                    "tags": "",
                    "company": "WARNER MUSIC JAPAN",
                    "briefDesc": "",
                    "artist": {
                        "name": "",
                        "id": 0,
                        "picId": 0,
                        "img1v1Id": 0,
                        "briefDesc": "",
                        "picUrl": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
                        "img1v1Url": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
                        "albumSize": 0,
                        "alias": [
                            
                        ],
                        "trans": "",
                        "musicSize": 0
                    },
                    "songs": [
                        
                    ],
                    "alias": [
                        
                    ],
                    "status": 0,
                    "copyrightId": 663018,
                    "commentThreadId": "R_AL_3_72056638",
                    "artists": [
                        {
                            "name": "神様、僕は気づいてしまった",
                            "id": 12203334,
                            "picId": 0,
                            "img1v1Id": 0,
                            "briefDesc": "",
                            "picUrl": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
                            "img1v1Url": "http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
                            "albumSize": 0,
                            "alias": [
                                
                            ],
                            "trans": "",
                            "musicSize": 0
                        }
                    ],
                    "subType": "录音室版",
                    "picId_str": "109951163433216811"
                },
                "starred": false,
                "popularity": 95.0,
                "score": 95,
                "starredNum": 0,
                "duration": 215225,
                "playedNum": 0,
                "dayPlays": 0,
                "hearTime": 0,
                "ringtone": null,
                "crbt": null,
                "audition": null,
                "copyFrom": "",
                "commentThreadId": "R_SO_4_1297493133",
                "rtUrl": null,
                "ftype": 0,
                "rtUrls": [
                    
                ],
                "copyright": 0,
                "hMusic": {
                    "name": "",
                    "id": 3417416777,
                    "size": 8610003,
                    "extension": "mp3",
                    "sr": 44100,
                    "dfsId": 0,
                    "bitrate": 320000,
                    "playTime": 215225,
                    "volumeDelta": -3.0
                },
                "mMusic": {
                    "name": "",
                    "id": 3417416779,
                    "size": 5166019,
                    "extension": "mp3",
                    "sr": 44100,
                    "dfsId": 0,
                    "bitrate": 192000,
                    "playTime": 215225,
                    "volumeDelta": -3.0
                },
                "lMusic": {
                    "name": "",
                    "id": 3417416780,
                    "size": 3444027,
                    "extension": "mp3",
                    "sr": 44100,
                    "dfsId": 0,
                    "bitrate": 128000,
                    "playTime": 215225,
                    "volumeDelta": -3.0
                },
                "bMusic": {
                    "name": "",
                    "id": 3417416780,
                    "size": 3444027,
                    "extension": "mp3",
                    "sr": 44100,
                    "dfsId": 0,
                    "bitrate": 128000,
                    "playTime": 215225,
                    "volumeDelta": -3.0
                },
                "mp3Url": null,
                "rtype": 0,
                "rurl": null,
                "mvid": 10749022
            }
        ],
        "ordered": true,
        "tags": [
            "日语",
            "ACG"
        ],
        "coverImgId": 7987951978316919,
        "createTime": 1442577242601,
        "coverImgUrl": "http://p1.music.126.net/1VYoU8DASzND2uM6tAc5fA==/7987951978316919.jpg",
        "userId": 90241279,
        "trackCount": 1,
        "adType": 0,
        "trackNumberUpdateTime": 1532953375747,
        "status": 0,
        "anonimous": false,
        "privacy": 0,
        "newImported": false,
        "updateTime": 1533445601163,
        "trackUpdateTime": 1533445934241,
        "playCount": 1861190,
        "specialType": 0,
        "subscribedCount": 81067,
        "cloudTrackCount": 0,
        "description": "(歌单描述,过长,略去)",
        "highQuality": false,
        "totalDuration": 0,
        "commentThreadId": "A_PL_0_108101671",
        "name": "日音①_抄作业专用(全科适用型)",
        "id": 108101671,
        "shareCount": 840,
        "commentCount": 1788
    },
    "code": 200
}

一些信息

浏览器:Chrome67.0
由F12查看得知整个加载过程中只有一个GET请求。
获取到的json在格式上是完整的,因此可能不是网络问题

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

救星 2022-09-14 20:32:25

很久没有看到问得这么详细的问题了,不过你只不过是缺少了一个请求头

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}

r = requests.get('http://music.163.com/api/playlist/detail?id=108101671', headers=headers)
print r.text
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文