最近,打卡APP需要这个数据,通过抓包后发现这个数据是固定的,获取很简单,但是数据太多,手动导入不显示,于是分析了json格式后果断通过脚本完成
使用json解析工具对返回的响应数据,进行转义和格式化
由于接口隐私,这里不放了
<?php
include 'api/conn.php';
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 设置 cURL 请求
$apiUrl = '';
$curl = curl_init($apiUrl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// 发送 cURL 请求并获取 JSON 数据
$response = curl_exec($curl);
if ($response === false) {
die("cURL 请求失败: " . curl_error($curl));
}
curl_close($curl);
// 解析 JSON 数据
$data = json_decode($response, true);
if ($data === null) {
die("解析 JSON 数据失败");
}
// 遍历数据并插入到数据库
foreach ($data['data'] as $group) {
foreach ($group['schools'] as $school) {
$schoolId = $school['school_id'];
$schoolName = $school['school_name'];
// 插入数据到数据库
$sql = "INSERT INTO *** (school_id, school_name) VALUES ('$schoolId', '$schoolName')";
if ($conn->query($sql) === true) {
echo "插入成功: $schoolName\n";
} else {
echo "插入失败: " . $conn->error . "\n";
}
}
}
// 关闭数据库连接
$conn->close();
?>
id自动,学校id和学校名给定类型和字长
访问demo.php文件,大概等5秒左右即可
成功后如图: