weixing123 发表于 2020-2-20 11:48:53

关于QQ音乐周杰伦歌词的爬取的问题

import requests
import json
# 引用requests,json模块

url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp'

headers = {
    'referer':'https://y.qq.com/portal/search.html',
    # 请求来源
    'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
    # 标记了请求从什么设备,什么浏览器上发出
    }

for x in range(5):

    params = {
    'ct':'24',
    'qqmusic_ver': '1298',
    'new_json':'1',
    'remoteplace':'sizer.yqq.lyric_next',
    'searchid':'94267071827046963',
    'aggr':'1',
    'cr':'1',
    'catZhida':'1',
    'lossless':'0',
    'sem':'1',
    't':'7',
    'p':str(x+1),
    'n':'10',
    'w':'周杰伦',
    'g_tk':'1714057807',
    'loginUin':'0',
    'hostUin':'0',
    'format':'json',
    'inCharset':'utf8',
    'outCharset':'utf-8',
    'notice':'0',
    'platform':'yqq.json',
    'needNewCode':'0'
    }

    res = requests.get(url, params = params)
    #下载该网页,赋值给res
    jsonres = json.loads(res.text)
    #使用json来解析res.text
    list_lyric = jsonres['data']['lyric']['list']
    #一层一层地取字典,获取歌词的列表

    for lyric in list_lyric:
    #lyric是一个列表,x是它里面的元素
       print(lyric['content'])
    #以content为键,查找歌词   

代码是正确的,只是关于红色标示的部分有些不懂,我观察XHR中的Preview有关歌词luric是空的即'lyric'='',怎么会提取出歌词呢?还有最后的'content'是什么东西?求高手解释……

YQAILJC 发表于 2020-12-29 15:39:02

有人给你解答了吗兄弟,我也这两句读不懂

tryhi 发表于 2020-12-29 16:41:37

不懂帮顶

suchocolate 发表于 2020-12-30 20:57:41

本帖最后由 suchocolate 于 2020-12-30 21:03 编辑

就是普通的数据索引,嵌套数据结构就是这样,可以多层索引。

在线json视图,方便你理解json结构:http://www.bejson.com/jsonviewernew/
答完发现是旧贴。{:10_277:}
页: [1]
查看完整版本: 关于QQ音乐周杰伦歌词的爬取的问题