该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
import requests
import json
import os
#请求头部
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36',
'Accept':'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.9',
'Proxy-Connection':'keep-alive',
'Referer':'http://act2.dn.sdo.com/Project/202004ranking/'
}
#46职业代码
job_code={
'剑皇':23,'月之领主':24,'狂战士':25,'毁灭者':26,'黑暗复仇者':76,
'狙翎': 29,'魔羽': 30,'影舞者': 31,'风行者': 32,'银色猎人':81,
'火舞': 35,'冰灵': 36,'时空领主': 37,'黑暗女王': 38,'黑暗死神':85,
'圣骑士': 41,'十字军': 42,'圣徒': 43,'雷神': 44,'黑暗教主':83,
'重炮手': 47,'机械大师': 48,'炼金圣士': 50,'药剂师': 51,'银色机甲师':87,
'烈': 63,'影': 64,'曜': 68,'暗': 69,'黑暗修罗':91,
'皇家骑士': 73,'魔枪骑士': 74,'冰魂术士': 93,'火灵术士': 94,'黑暗破魔师':99,
'御灵': 78,'破风': 79,'碎夜': 96,'驭光': 97,
'斩魄':102,'逐月':103
}
#POST请求参数
request_data={
'PageIndex':1, #此参数代表请求第几页
'Pagesize':100, #此参数代表一页请求多少数据,默认为5
'JobCode':73, #此参数是职业代码,见上方
'SeaAreaId':0, #此参数为区服,1为华东电信一服 7为全国网通大区
'PassNum':17 #此参数为通关夕阳层数,这里以通关17层为例
}
#夕阳排行榜请求URL地址
request_url="http://act2.dn.sdo.com/Project/202004ranking/handler/GetStageRank.ashx?0.7486968842188584"
response=requests.post(url=request_url,data=request_data,headers=headers).json()
#先dump一下json
dump_result=json.dumps(response)
#载入json字符串
data=json.loads(dump_result)
#拿到ReturnObject里的数据,这才是我们想要获取的
sunset_ranking_data=data.get("ReturnObject")
print(sunset_ranking_data)
#下面开始写入HTML
html_path="C:/Sunset_Ranking_Data/" #新建一个保存HTML的文件夹
#判断文件夹是否存在,如果不存在创建一个新文件夹
if not os.path.exists(os.path.split(html_path)[0]):
os.mkdir(html_path)
html_file="
夕阳排行榜——皇家骑士17层"try:
with open(html_path+"夕阳排行榜——皇家骑士17层.html","wb") as f:
f.write(html_file.encode("UTF-8"))
print("保存成功")
except IOError as e:
print("保存失败",e)
######################分隔线###########################
其实如果不算上jobcode代码的话,50行不到就能搞定。
想要查询其他职业,只需要修改request_data里的参数就可以了,代码有详细注释。
最后还打包了一个查询17C皇家骑士排行榜的exe文件,我上传到百度网盘了
地址:https://pan.baidu.com/s/1GAUSeMKnhEBuww5Yq9ycLw 提取码:ts6v
祝大家玩得开心,have fun!