【问题标题】:Automate commands created in the console (DevTools)自动化在控制台中创建的命令 (DevTools)
【发布时间】:2020-09-14 22:05:19
【问题描述】:

我有这两个命令:

window.scrollTo(0, 5000);

document.querySelectorAll('.components-button.components-button-size-mini.components-button-type-primary.components-button-theme-dark.desktop.components-button-inline').forEach(btn => btn.click());

我通过 DevTools 控制台在此站点上使用它们:
https://booyah.live/users/13080294/followers

但当我向下滚动并加载更多配置文件时,Google Chrome 有时会完全崩溃。

我想知道是否有任何方法可以自动执行这些命令,并且不需要打开原始网站以使浏览器不会崩溃。

命令的目的:

1 - 滚动到末尾以加载更多配置文件
2 - 点击可用配置文件的“关注”按钮

【问题讨论】:

  • 使用 Puppeteer 或类似工具,例如用于 python 连接到正在运行的 Chrome 实例的任何 CDP 库。

标签: javascript google-chrome-devtools


【解决方案1】:

不要模拟滚动,你会很快溢出你的记忆。只需模拟请求即可。 See more.

示例代码:

var maxFolowNumber = 1000;
var userProfileID = 13080294;
var yourUserProfileID = ...; // Got on your profile url.
    
run = () => {
    for (let i = 0; i < maxFolowNumber; i += 100)
        fetch(`https://booyah.live/api/v3/users/${userProfileID}/followers?cursor=${i}&count=100`, {"method": "GET"})
        .then(j => j.text())
        .then(k => JSON.parse(k).follower_list.forEach(q =>
            fetch(`https://booyah.live/api/v3/users/${yourUserProfileID}/followings`, {
                "body": `{\"followee_uid\":${q.uid}}`,
                "method": "POST",
            })
        ));
}

run();

【讨论】:

  • 嗨,伙计...它工作得很好,但我意识到当试图将配置文件的数量从 1000 增加到 250000 时,DevTools 很快就会崩溃。如果我尝试从 1000 个中提取几个,它不起作用,因为它会继续分析仅出现的前 1000 个配置文件,所以你不会再找到了,对吧?有什么办法可以解决这个问题吗?
  • 我认为你应该坚持10k-20k左右,如果你想要更高的数字,你可以使用setTimeout
  • 再次感谢伙计!
猜你喜欢
  • 1970-01-01
  • 2013-03-27
  • 2010-11-01
  • 2010-11-18
  • 1970-01-01
  • 2014-09-07
  • 1970-01-01
  • 2019-07-28
  • 1970-01-01
相关资源
最近更新 更多