json Instagram的公共API(__a=1)被禁止.任何替代?

6psbrbz9  于 2023-03-24  发布在  其他
关注(0)|答案(5)|浏览(121)

我使用instagram公共API(将__a=1添加到url的参数中)来获取帖子详细信息(captionimageUrlpostTypelikescommentsviewsCount)。但似乎Instagram最近禁止了这一点并返回了403。当我试图通过其usrl直接打开帖子时,它也要求登录。
我尝试使用instagram的私有API(https://mgp25.github.io/)来获取帖子的详细信息,但是在一些请求之后instargam也禁止了它:
“由于API请求太多而被Instagram限制”
你们有没有其他的选择?

1szpjjfi

1szpjjfi1#

实际上,它不是真的被禁止,但现在用302重定向到auth页面。当Instagram帐户和查询geoIP不同时,似乎需要auth。替代方案是使用官方API。无法进行抓取,因为配置文件链接现在也需要身份验证。您可以进行身份验证抓取,但每小时限制为200个查询(Instagram发送以获取数据)。

83qze16e

83qze16e2#

Instagram阻止了所有公共端点,但有一些限制和命中率。现在您需要发送用户的会话以获取响应。

当你在同一个浏览器上登录Instagram时,你是否注意到同一个端点返回JSON响应?是的,因为每当你点击“www.example.com“这样的URLhttps://www.instagram.com/anything/?__a=1时,你的浏览器都会向Instagram发送实时有效的会话ID。因为你已经登录,所以Instagram对你很有用。

你是否想知道为什么相同的端点开始再次工作后,改变互联网连接从Wifi到移动的热点或尝试与另一个互联网服务提供商。
这是因为你的IP被封锁了,在你登录之前,没有更多的免费辣妹给你。

下面是给予sessionid尝试的PHP代码。

<?php
// keyword or user name
$hashtag = $username = "msevylynch";
// $endpoint = "explore/tags/$hashtag"; // hashtag search
$endpoint = $username; // user search
// login in insta account and copy session from browser's cookie tab
$sessionid = '<YOU-SESSION-ID-PICK-FROM-BROWSER-AFTER-LOGIN>';

$ch = curl_init();
https://www.instagram.com/explore/tags/msevylynch/?__a=1
curl_setopt($ch, CURLOPT_URL, "https://www.instagram.com/{$endpoint}/?__a=1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Cookie: ds_user='.$username.'; igfl='.$username .'; sessionid=' . $sessionid,
    'User-Agent: Instagram 7.16.0 Android'
));
$response = curl_exec($ch);

header('Content-Type: application/json');
echo $response;
?>

*仍然没有运气,那么这意味着**Instagram阻止了你或你的IP一段时间,由于 *

1.以编程方式过早或过快地命中端点
1.拒绝提出的质询
1.看起来这是一个自动命中
1.密码已更改
1.您已注销
1.或者你的网络账单过期了..哈哈哈
谢谢你这么长时间的阅读,非常杏子。

exdqitrt

exdqitrt3#

Instagram对__a=1端点的要求越来越严格。您在2021年获取Instagram个人资料信息的最佳选择是使用干净的住宅代理

kpbwa7wx

kpbwa7wx4#

他们需要住宅IP访问?__a=1页没有登录。https://webscraping.ai适用于它,如果您使用proxy=residential参数。这样的请求的一个例子:

curl "https://api.webscraping.ai/html?api_key=test-api-key&proxy=residential&url=https%3A%2F%2Fwww.instagram.com%2Finstagram%2F%3F__a%3D1"
a11xaf1n

a11xaf1n5#

尝试使用“?__a=1&__d=dis”
以后再谢我。

相关问题