关键词:
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)
- 循环获得当前分类所有的页面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循环来遍历所有的分类,如果拿不到信息则说明这个分类是不存在的,可以结束循环