PHP Curl获取ajax数据或类似

时间:2017-03-21 12:09:04

标签: php ajax curl

我不知道问题是否正确,但这是我的问题..

我想抓取此网站:https://www.easports.com/fifa/ultimate-team/compete/leaderboards以获取排行榜数据。

当我使用以下代码执行此操作时,我只获得页眉+页脚,而不是排行榜数据。

$client = new HttpClient();
$client->setAdapter("Zend\Http\Client\Adapter\Curl");
$client->setUri("https://www.easports.com/fifa/ultimate-team/compete/leaderboards");
$content = $client->send()->getBody();
var_dump($content);

我的卷曲有问题,还是这些数据不能卷曲?如果是这样,也许你有一个解决方案;)

1 个答案:

答案 0 :(得分:0)

如果您在浏览器中打开开发人员工具,您可以看到为填充排行榜而进行的额外请求。您应该使用网址https://www.easports.com/cgw/api/fifa/fut/leaderboard?platform=xboxone&region=ams&period=curr来获取排行榜。这将返回以下布局中的JSON:

[
{
  "rank": 1,
  "persona": "persona",
  "hasProfile": false,
  "wins": 1,
  "skill": "6",
  "qualified": 0
}]

使用您的代码:

$client = new HttpClient();
$client->setAdapter("Zend\Http\Client\Adapter\Curl");
$client->setUri("https://www.easports.com/cgw/api/fifa/fut/leaderboard?platform=xboxone&region=ams&period=curr");
$content = $client->send()->getBody();
var_dump($content);

然后可以使用以下方法处理:

$client = new HttpClient();
$client->setAdapter("Zend\Http\Client\Adapter\Curl");
$client->setUri("https://www.easports.com/cgw/api/fifa/fut/leaderboard?platform=xboxone&region=ams&period=curr");
$content = $client->send()->getBody();
$leaderBoard = json_decode($content);
foreach($leaderBoard as $member){
    echo $member['rank'] . '. ' . $member['persona'] . '(' . $member['wins'] . ' Wins)<br />';
}
相关问题