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