从零开始做直播导航网站 第五天

关键词:
json解析

思路:
在上一次分析后,用代码一步一步实现获得直播间信息

过程:
1.获得某个分类第一页的JSON,并读出总页数pgnct
用python自带的json API实现

import urllib3
import json

http = urllib3.PoolManager()
url = 'https://www.douyu.com/gapi/rkc/directory/2_'

def getJSONFromUrl(pageUrl):
    request = http.request('GET', pageUrl)
    content = request.data.decode("utf-8")
    jsonContent = json.loads(content)
    return jsonContent      

def getFirstPageJSON(typeIndex):
    firstPageUrl = url + str(typeIndex) + '/1'
    jsonContent = getJSONFromUrl(firstPageUrl)
    return jsonContent['data']['pgcnt']
            
pageNum = getFirstPageJSON(1)
print(pageNum)
  1. 循环获得当前分类所有的页面json
def getAllPagesJSON(typeIndex):
    pageNum = getFirstPageJSON(typeIndex)
    for pageIndex in range(2, pageNum):
        pageUrl = url + str(typeIndex) + '/' + str(pageIndex)
        jsonContent = getJSONFromUrl(pageUrl)

3.分析json内容

def analysisPageJSON(jsonContent):
    for room in jsonContent['data']['rl']:
        roomid = room['rid']
        roomname = room['rn']
        username = room['nn']
        url = room['url']
        kind = room['c2name']
        print(roomid,roomname,username,url,kind)

最后做一个for循环来遍历所有的分类,如果拿不到信息则说明这个分类是不存在的,可以结束循环

你可能感兴趣的:(从零开始做直播导航网站 第五天)