import requests,json
import pandas as pd
qq = requests.get("某网站接口")
qq.encoding = "gbk"
def QhFindCode(QhList):
"""
获取分类代码
作者:阙辉
"""
QhFlag = False # 记录当前是否是列表
QhFlag01 = False # 转记录当前上一个是否是列表
if isinstance(QhList[1],list): # 判断第二个是不是列表,是的话则不是末级
for Qhi,QhRow in enumerate(QhList):
if isinstance(QhRow,list): # 判断当前是否为列表
QhFlag = True
else:
QhFlag = False
if QhFlag01 == True and QhFlag==False: # 如果当前是非列表 上一个是列表 则说明
QhCode = QhList[Qhi+1]
QhFlag01 = QhFlag # 转存当前是不是列表
QhIsList = True # 判断第二个是不是列表,是的话则说明还有下级
else:
QhCode = QhList[2] # 如果是末级 默认第三个是代码
QhIsList = False
QhCodeZ = QhList[-1].replace(' ',"")
# if "hs_bjs" in QhCodeZ:print(QhCodeZ)
if "{node:'" in QhCodeZ:
QhCode = QhCodeZ.replace(' ',"").split("{node:'")[1].split("',")[0].replace("'}","")
print(QhCodeZ)
print(QhCode)
return QhCode,QhIsList
def QhFindXiaJiMenu(QhBanKuaiXia,QhBanKuai):
"""
获取下层分类
作者:阙辉
"""
QhBanKuaiXia02 = [] # 下层分类列表初始化
for QhRow in QhBanKuaiXia: # 循环下层
QhShangName = QhRow["QhName"]
QhShangCode = QhRow["QhCode"]
QhShangcount = QhRow["QhNumber"]
QhXiaListRow = QhRow["QhXiaJiList"]
# print(QhShangName,QhShangCode,QhShangcount)
# print(str(QhXiaListRow)[:1000])
for QhRow01 in QhXiaListRow:
QhBanKuaiRow = [] # 分类行列表初始化
QhXiaYiDic = {} # 下层字典初始化
QhName = QhRow01[0] # 分类名
if "</" in QhName: QhName = QhName.split('>')[1].split("</")[0]
QhCode,QhIsList = QhFindCode(QhRow01)
QhBanKuaiRow.append(QhName)
QhBanKuaiRow.append(QhCode)
QhBanKuaiRow.append(QhShangCode)
QhBanKuaiRow.append(QhShangcount+1)
QhXiaYiDic["QhName"] = QhName
QhXiaYiDic["QhCode"] = QhCode
QhXiaYiDic["QhNumber"] = QhShangcount+1
QhBanKuai.append(QhBanKuaiRow)
if QhIsList:
QhXiaYiDic["QhXiaJiList"] = QhRow01[1]
QhBanKuaiXia02.append(QhXiaYiDic)
return QhBanKuaiXia02,QhBanKuai
qqjson = json.loads(qq.text)
QhBanKuai = [] # 总列表初始化 名称 代码 上级代码 级数
# 第一层
QhBanKuaiRow = [] # 当前列表
QhBanKuaiXia = [] # 下一层记录列表
QhXiaYiDic = {} # 下一层字典化
QhName = qqjson[0]
if "</" in QhName: QhName = QhName.split('>')[1].split("</")[0]
QhCode,QhIsList = QhFindCode(qqjson)
QhBanKuaiRow.append(QhName)
QhBanKuaiRow.append(QhCode)
QhBanKuaiRow.append("")
QhBanKuaiRow.append(0)
QhXiaYiDic["QhName"] = QhName
QhXiaYiDic["QhCode"] = QhCode
QhXiaYiDic["QhNumber"] = 0
QhBanKuai.append(QhBanKuaiRow)
if QhIsList:
QhXiaYiDic["QhXiaJiList"] = qqjson[1]
QhBanKuaiXia.append(QhXiaYiDic)
QhFlag = True
while QhFlag:
# 递归完美解决
QhBanKuaiXia,QhBanKuai = QhFindXiaJiMenu(QhBanKuaiXia,QhBanKuai)
if len(QhBanKuaiXia) == 0:QhFlag = False
aa=pd.DataFrame(QhBanKuai,columns=["名称","代码","上级代码","级数"])
aa.to_csv("新浪.csv",encoding='gbk')
# # 第二层
# QhBanKuaiXia02 = []
# for QhRow in QhBanKuaiXia:
# QhShangName = QhRow["QhName"]
# QhShangCode = QhRow["QhCode"]
# QhShangcount = QhRow["QhNumber"]
# QhXiaListRow = QhRow["QhXiaJiList"]
# print(QhShangName,QhShangCode,QhShangcount)
# print(str(QhXiaListRow)[:1000])
# for i,QhRow01 in enumerate(QhXiaListRow):
# QhBanKuaiRow = []
# print(i)
# QhXiaYiDic = {}
# QhName = QhRow01[0]
# QhCode,QhIsList = QhFindCode(QhRow01)
# QhBanKuaiRow.append(QhName)
# QhBanKuaiRow.append(QhCode)
# QhBanKuaiRow.append(QhShangCode)
# QhBanKuaiRow.append(QhShangcount+1)
# QhXiaYiDic["QhName"] = QhName
# QhXiaYiDic["QhCode"] = QhCode
# QhXiaYiDic["QhNumber"] = QhShangcount+1
# QhBanKuai.append(QhBanKuaiRow)
# QhBanKuai0001=[]
# if QhIsList:
# for QhRow in QhRow01:
# if isinstance(QhRow,list):
# QhXiaYiDic["QhXiaJiList"] = QhRow
# QhBanKuaiXia02.append(QhXiaYiDic)
# # 第三层
# QhBanKuaiXia03 = []
# for QhRow in QhBanKuaiXia02:
# QhShangName = QhRow["QhName"]
# QhShangCode = QhRow["QhCode"]
# QhShangcount = QhRow["QhNumber"]
# QhXiaListRow = QhRow["QhXiaJiList"]
# print(QhShangName,QhShangCode,QhShangcount)
# print(str(QhXiaListRow)[:1000])
# for i,QhRow01 in enumerate(QhXiaListRow):
# QhBanKuaiRow = []
# print(i)
# QhXiaYiDic = {}
# QhName = QhRow01[0]
# QhCode,QhIsList = QhFindCode(QhRow01)
# QhBanKuaiRow.append(QhName)
# QhBanKuaiRow.append(QhCode)
# QhBanKuaiRow.append(QhShangCode)
# QhBanKuaiRow.append(QhShangcount+1)
# QhXiaYiDic["QhName"] = QhName
# QhXiaYiDic["QhCode"] = QhCode
# QhXiaYiDic["QhNumber"] = QhShangcount+1
# QhBanKuai.append(QhBanKuaiRow)
# QhBanKuai0001=[]
# if QhIsList:
# for QhRow in QhRow01:
# if isinstance(QhRow,list):
# QhXiaYiDic["QhXiaJiList"] = QhRow
# QhBanKuaiXia03.append(QhXiaYiDic)
# # 第四层
# QhBanKuaiXia04 = []
# for QhRow in QhBanKuaiXia03:
# QhShangName = QhRow["QhName"]
# QhShangCode = QhRow["QhCode"]
# QhShangcount = QhRow["QhNumber"]
# QhXiaListRow = QhRow["QhXiaJiList"]
# print(QhShangName,QhShangCode,QhShangcount)
# print(str(QhXiaListRow)[:1000])
# for i,QhRow01 in enumerate(QhXiaListRow):
# QhBanKuaiRow = []
# print(i)
# QhXiaYiDic = {}
# QhName = QhRow01[0]
# QhCode,QhIsList = QhFindCode(QhRow01)
# QhBanKuaiRow.append(QhName)
# QhBanKuaiRow.append(QhCode)
# QhBanKuaiRow.append(QhShangCode)
# QhBanKuaiRow.append(QhShangcount+1)
# QhXiaYiDic["QhName"] = QhName
# QhXiaYiDic["QhCode"] = QhCode
# QhXiaYiDic["QhNumber"] = QhShangcount+1
# QhBanKuai.append(QhBanKuaiRow)
# QhBanKuai0001=[]
# if QhIsList:
# for QhRow in QhRow01:
# if isinstance(QhRow,list):
# QhXiaYiDic["QhXiaJiList"] = QhRow
# QhBanKuaiXia04.append(QhXiaYiDic)
# # 第五层
# QhBanKuaiXia05 = []
# for QhRow in QhBanKuaiXia04:
# QhShangName = QhRow["QhName"]
# QhShangCode = QhRow["QhCode"]
# QhShangcount = QhRow["QhNumber"]
# QhXiaListRow = QhRow["QhXiaJiList"]
# print(QhShangName,QhShangCode,QhShangcount)
# print(str(QhXiaListRow)[:1000])
# for i,QhRow01 in enumerate(QhXiaListRow):
# QhBanKuaiRow = []
# print(i)
# QhXiaYiDic = {}
# QhName = QhRow01[0]
# QhCode,QhIsList = QhFindCode(QhRow01)
# QhBanKuaiRow.append(QhName)
# QhBanKuaiRow.append(QhCode)
# QhBanKuaiRow.append(QhShangCode)
# QhBanKuaiRow.append(QhShangcount+1)
# QhXiaYiDic["QhName"] = QhName
# QhXiaYiDic["QhCode"] = QhCode
# QhXiaYiDic["QhNumber"] = QhShangcount+1
# QhBanKuai.append(QhBanKuaiRow)
# QhBanKuai0001=[]
# if QhIsList:
# for QhRow in QhRow01:
# if isinstance(QhRow,list):
# QhXiaYiDic["QhXiaJiList"] = QhRow
# QhBanKuaiXia05.append(QhXiaYiDic)
# # 第六层
# QhBanKuaiXia06 = []
# for QhRow in QhBanKuaiXia05:
# QhShangName = QhRow["QhName"]
# QhShangCode = QhRow["QhCode"]
# QhShangcount = QhRow["QhNumber"]
# QhXiaListRow = QhRow["QhXiaJiList"]
# print(QhShangName,QhShangCode,QhShangcount)
# print(str(QhXiaListRow)[:1000])
# for i,QhRow01 in enumerate(QhXiaListRow):
# QhBanKuaiRow = []
# print(i)
# QhXiaYiDic = {}
# QhName = QhRow01[0]
# QhCode,QhIsList = QhFindCode(QhRow01)
# QhBanKuaiRow.append(QhName)
# QhBanKuaiRow.append(QhCode)
# QhBanKuaiRow.append(QhShangCode)
# QhBanKuaiRow.append(QhShangcount+1)
# QhXiaYiDic["QhName"] = QhName
# QhXiaYiDic["QhCode"] = QhCode
# QhXiaYiDic["QhNumber"] = QhShangcount+1
# QhBanKuai.append(QhBanKuaiRow)
# QhBanKuai0001=[]
# if QhIsList:
# for QhRow in QhRow01:
# if isinstance(QhRow,list):
# QhXiaYiDic["QhXiaJiList"] = QhRow
# QhBanKuaiXia06.append(QhXiaYiDic)
# for QhRow99 in QhBanKuai01:
# QhShangName = QhRow99[0]
# QhShangCode = QhRow99[1]
# QhShangcount = QhRow99[-1]
# print(QhShangName,QhShangCode,QhShangcount)
# for i,QhRow in enumerate(QhRow99):
# for i01,QhRow01 in enumerate(QhRow):
# print(i01)
# QhBanKuai0001 = []
# QhBanKuaiRow = []
# # for i in range(1,6):
# QhName = QhRow[0]
# QhCode,QhIsList = QhFindCode(QhRow)
# QhBanKuaiRow.append(QhName)
# QhBanKuaiRow.append(QhCode)
# QhBanKuaiRow.append("")
# QhBanKuaiRow.append(0)
# QhBanKuai01.append(QhBanKuaiRow)
# QhBanKuai.append(QhBanKuaiRow)
# print(QhBanKuai)
# if QhIsList:
# for QhRow01 in QhRow:
# QhBanKuai0001 = []
# if isinstance(QhRow01,list):
# QhBanKuai0001.append(QhRow01)
# QhBanKuai01.append(QhBanKuai0001)
# print(QhBanKuai)
# print(QhBanKuaiXia05)
# print(len(QhBanKuai01))
递归获取市场分类
最新推荐文章于 2026-03-02 00:21:21 发布

1420

被折叠的 条评论
为什么被折叠?



