gpt4 book ai didi

javascript - 使用 js 以编程方式发布 instagram 评论

转载 作者:行者123 更新时间:2023-11-30 06:22:50 25 4
gpt4 key购买 nike

我正在创建一个 Instagram 机器人,用于对用户的照片发表评论。我知道已经有像 InstaPy 这样的解决方案了但它对我不起作用,我已经 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 token 。您可以阅读更多 here

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

这是登录 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();
})();

关于javascript - 使用 js 以编程方式发布 instagram 评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52175924/

25 4 0
文章推荐: javascript - react 草稿所见即所得 : Empty validator check
文章推荐: java - 如何检测 Map> 中的重复列表
文章推荐: java - 防止 robot.mouseMove 生成​​ MouseEvent?
文章推荐: java - 检查 java List 对象类型