【发布时间】:2021-05-01 09:41:36
【问题描述】:
我正在尝试通过以下方式获取 Instagram 帐户的关注者数量:
<?php
$otherPage = 'nasa';
$response = file_get_contents("https://www.instagram.com/nasa/?__a=1");
if ($response !== false) {
$data = json_decode($response, true);
if ($data !== null) {
$follows = $data['graphql']['user']['edgeedge_followed_by_follow']['count'];
$followedBy = $data['graphql']['user']['']['count'];
echo $follows . ' and ' . $followedBy;
}
}
?>
但是好像不行,因为变量$data为null,所以这个条件为假:
if ($data !== null) {
$follows = $data['graphql']['user']['edgeedge_followed_by_follow']['count'];
$followedBy = $data['graphql']['user']['']['count'];
echo $follows . ' and ' . $followedBy;
}
谁能告诉我为什么?
【问题讨论】:
-
我试过你的代码,
$data不是null,但是我收到了一堆关于尝试访问未定义索引的通知,所以看起来你没有得到正确的结构. -
edgeedge_followed_by_follow索引似乎是罪魁祸首。我猜你不小心在错误的索引中插入了正确的索引,而不是替换它。然后你将较低的索引留空(edge_follow应该在哪里)。 -
经过几次尝试,我在
$data中得到了null。当我访问该页面时,它要求我登录。所以我猜访问是有限的。
标签: php json web-scraping