我目前有一个限制问题,即每个 Curl 请求我得到 1000 个结果,这里的问题是我需要得到大约 7000 个结果。
curl获取的数据是Json格式,数据底部有一个链接可以获取下一页数据,每页包含1000条结果。
是否可以做一个数组或某种循环,从每个页面获取所有数据,直到最后一页底部不再有 next_page URL。
我尝试使用的代码示例是:
function curlWrap($url, $json, $action)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10 );
curl_setopt($ch, CURLOPT_URL, ZDURL.$url);
curl_setopt($ch, CURLOPT_USERPWD, ZDUSER."/token:".ZDAPIKEY);
switch($action){
case "POST":
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
break;
case "GET":
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
break;
case "PUT":
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
default:
break;
}
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$output = curl_exec($ch);
curl_close($ch);
$decoded = json_decode($output);
return $decoded;
}
我只想找到一种添加数组或循环的方法,以继续从 next_page url 获取结果/数据,直到页面底部不再有 next_page url。
关于 json 布局的更多细节:
json 键是“next_page”和“end_time”:
"end_time": ("unix-timestamp")
"next_page": "https:url/"unix-timestamp"
在每一页之后都有一个新的时间戳,它将在键“end_time”中列出。
然后,这将列在“next_page”网址的末尾。这两个键都是 json 代码中的最后两行,json 文件中总共有大约 20'000 行数据。
如果需要更多详细信息,请告诉我,提前谢谢。