从 Instagram 抓取数据

Seb*_*rin 2 javascript php yql instagram instagram-api

我实际上只需要公共帐户的关注者数量,例如https://www.instagram.com/kygomusic/

新的 Instagram 的 API 规则非常严格(并经过讨论): 现在大多数常见应用程序都无法访问公共内容。您需要一个未授予普通应用程序的 public_content 范围(?!)

public_content:此权限 (public_content) 仅授予使品牌、广告商、广播公司和发布商能够发现公共内容的应用程序。我们不会授予对不属于这些类别的应用程序的访问权限。请查看我们的文档 ( https://www.instagram.com/developer/review ) 了解更多信息。

所以我决定从 Instagram 上抓取数据

一个选项是使用file_get_contents() (PHP) 并且它可以工作,但是它从我的服务器加载了所有站点并且它非常繁重。所以我的第一个想法是使用YQL。我将它用于 Twitter 并且运行良好,但是当我从 Instagram 抓取数据时,我什么也没得到:

http://developer.yahoo.com/yql/console/?q=select%20*%20from%20html%20where%20url%3D'https%3A%2F%2Fwww.instagram.com%2Fkygomusic%2F'&env= store%3A%2F%2Fdatatables.org%2Falltableswithkeys

小智 5

我看了一下你提交的页面,没有那么重,考虑到你不会加载图片或处理js。在检查时我发现他们有一个 json 来存储他们的数据。

.... "followed_by": {"count": 924725}

我没有时间测试这个,但它应该可以工作,或者至少你明白了使用它的意义。CURL 可能是更好的选择,因为它可以处理多线程请求。

$url = 'https://www.instagram.com/kygomusic/';
$str = file_get_contents($url);
$count = 0;
if(preg_match('#followed_by": {"count": (.*?)}#', $str, $match)) {
     $count = $match[1]; // get the count from Regex pattern
} echo $count;
Run Code Online (Sandbox Code Playgroud)