Javascript 使用js以编程方式发布instagram后评论

Javascript 使用js以编程方式发布instagram后评论,javascript,instagram,Javascript,Instagram,我正在创建一个instagram机器人,它可以在用户的照片上发表评论。我知道已经有类似的解决方案,但它对我不起作用,我99%的完成了我自己的js解决方案 有没有一种方法可以让我以编程方式发布?我已经设置了textArea.value,并尝试提交包装表单(它只是刷新页面)。我还试图“点击”提交按钮,但这并没有导致它做任何事情。我还尝试在文本区域中“键入”,但如果屏幕上没有任何实际的用户交互,也没有尝试提交实际的请求(似乎我的标题不匹配,并且出现403错误),这似乎是不可能的。下面是我当前正在做的一

我正在创建一个instagram机器人,它可以在用户的照片上发表评论。我知道已经有类似的解决方案,但它对我不起作用,我99%的完成了我自己的js解决方案

有没有一种方法可以让我以编程方式发布?我已经设置了textArea.value,并尝试提交包装表单(它只是刷新页面)。我还试图“点击”提交按钮,但这并没有导致它做任何事情。我还尝试在文本区域中“键入”,但如果屏幕上没有任何实际的用户交互,也没有尝试提交实际的请求(似乎我的标题不匹配,并且出现403错误),这似乎是不可能的。下面是我当前正在做的一个代码片段

var commentTextArea = document.getElementsByClassName('Ypffh')[0];
if (commentTextArea) {

    // Text area for posting comment
    commentTextArea.textContent = "This is my comment :)";

    setTimeout(function() {

        // Comment submit button
        var submitButton = document.getElementsByClassName('LCjcc')[0];
        submitButton.disabled = false;
        submitButton.click(); // doesn't fire anything. I can see in chrome dev tools there is no event event attached to this even when enabled which is odd

        // Comment form
        // Submitting form expectedly refreshes page
        // Tried add my own submit listener with return false && e.preventDefault and neither worked
        var form = document.querySelector('X7cDz');
        if (form) {

            form.submit();
        }
    }, 2000);
}

您将收到403错误,因为您未提交csrf令牌。你可以更多地了解它

为了克服这一挑战,您可以使用提供高级API的库来控制浏览器,如。这允许您编写一个脚本,它将运行一个浏览器,并将像一个真正的用户一样,在页面上冲浪,并在任何您想要的地方留下评论

以下是登录Instagram并在特定帖子下留下评论的代码示例:

const puppeteer = require('puppeteer');

(async () => {
  // Starting browser
  const browser = await puppeteer.launch({headless: false});
  const page = await browser.newPage();

  // Login flow
  await page.goto('https://www.instagram.com/accounts/login/?source=auth_switcher');
  await page.waitForSelector('input[name="username"]');
  await page.type('input[name="username"]', 'username');
  await page.type('input[name="password"]', 'password');
  await page.click('button[type="submit"]');

  // Waiting for page to refresh
  await page.waitForNavigation();

  // Navigate to post and submitting the comment
  await page.goto('https://www.instagram.com/p/BVSCQI-FRaj/');
  await page.waitForSelector('textarea');
  await page.type('textarea', 'Test comment');

  await page.click('button[type="submit"]');

  await browser.close();
})();

代码示例…@DenisTsoi done:)Instagram可能检测到您正在使用机器人。您解决了吗?只是为了了解情况。有没有可能在没有机器人的情况下获得像instagram一样的/关注者。纯编码(API或其他什么),如果你能提供帮助或建议的话?谢谢,这是可能的。请看一下这张照片。它提供了适当的API。然而,据我记忆所及,它需要OAuth授权才能使用感谢您的快速回复。我很快浏览了文档,发现它为我提供了GET USER&MEDIA的端点。但是我还没有发现任何与喜欢有关的东西(我不想知道数量)。如果您建议,或者我们可以通过电子邮件或任何可能的地方为您连接。媒体回复包含喜欢的信息(仅统计)。您可以按照
https://www.instagram.com/developer/endpoints/users/
并选中
GET/users/self/media/recent
响应示例。如果你想找到关于到底是谁放了喜欢的信息,我想这个信息很遗憾无法通过API获得。非常感谢@SergeyMell Yeah…这就是我相信只有在喜欢的情况下才可能实现自动化(我知道有些团队可以坐在那里创建帐户并做喜欢的事情,这无论如何都不是我喜欢的事情)