关于洛谷api的分析

摘要

这篇文章主要介绍的是关于洛谷 API 的一些分析,方便后续爬虫等功能的编写。

接口抓取

前段时间我发现洛谷的 Fetch/XHR 请求中有一个类似 api 数据的返回值,于是尝试分析,但是由于后来洛谷貌似用后端动态往前端的 HTML 中插入数据的方式替换掉了 API 接口,无法继续分析。

一个正常的接口应当返回的是包含很多数据比如用户信息,页面信息,版本信息等等,由此,我们可以通过这些特征尝试识别那些是 API 接口。

格式

经过研究,发现大部分洛谷的网页可以通过添加 Header:x-lentille-request:content-only 来使得返回值是格式化好的数据,而不是需要我们自己解析的 HTML 界面。

以前洛谷支持添加 param:?_contentOnly 来获取数据,但是现在貌似取消了。

示例代码

import http.client
import json

conn = http.client.HTTPSConnection("www.luogu.com.cn")
payload = ''
headers = {
   'x-lentille-request': 'content-only',
   'X-Requested-With': 'XMLHttpRequest',
   'Referer': 'https://www.luogu.com.cn/problem/list',
   'User-Agent': 'Apifox/1.0.0 (https://apifox.com)',
   'Content-Type': 'application/json',
   'Accept': '*/*',
   'Host': 'www.luogu.com.cn',
   'Connection': 'keep-alive'
}
conn.request("GET", "/user/602124", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
本文链接:https://ztrztr.top/archives/1074
版权声明:本文 《关于洛谷api的分析》 为 ztrztr 原创。著作权归作者所有。
转载说明:联系作者或者评论区留言获得转载授权,并注明转载地址。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇