相关疑难解决方法(0)

如何将mutationobserver注入puppeteer

我想要像无头 chrome 中的 mutationobserver 一样跟踪更改的 DOM。所以我在学习 puppeteer 库,但不知道如何使用。

可以在 puppeteer 中跟踪 DOM 变化吗??谢谢

mutation-observers puppeteer

5
推荐指数
1
解决办法
2916
查看次数

如何使 setInterval 在后台选项卡中正常工作

我正在使用 setInterval(在 3 个 Tampermonkey 脚本内)每隔几秒检查三个不同的公共网站,这样当特定文本出现时我就可以收到警报。这些警报适用于自由职业机会,可能会在几秒钟内到期,所以我必须快点。

一切正常,除了当我在不同的选项卡或应用程序中工作时,大约 6 分钟后,setInterval 开始每分钟“触发”一次后台选项卡,而不是每隔几秒一次。

有什么建议如何解决这个问题吗?是否可以以某种方式使用 Date.now() ?请注意,我是一个完全的初学者,愿意学习,但需要使事情尽可能简单。

我尝试使用 window.location.reload() 每 3 分钟重新加载一次页面,但这不起作用。我想我可以创建一个脚本来每隔几分钟激活并聚焦该选项卡,但这会中断我正在处理的任何事情。我使用以下准系统脚本针对https://www.google.co.uk/进行了测试,以防脚本中的其他内容导致问题,但也会发生同样的情况:

var i = 0;
setInterval(function() {
    console.log("log: i:" + i);
    i = i+1;
    if(i==15) {
        i = 0;
        window.location.reload();
        console.log("reloaded window");
    }

}, 10000);
Run Code Online (Sandbox Code Playgroud)

几分钟后,即使在窗口重新加载之后,i 每分钟仅增加一次。

我看过这个问题

它提到了“工人”,但是这些可以在我不拥有的公共网站上的 tampermonkey 中使用吗?它还提供了一个链接,建议一种播放几乎听不见的音频文件的解决方法 - 但我不知道在我的 tampermonkey 脚本中播放该文件是否有效?

我看到这里有很多解决方法,但我不确定是否可以使用其中任何一个。

例如,可以在篡改猴中使用 MutationObserver 来检测公共网站的更改吗?即使可以,大概我每次需要检查时都必须重新加载网页?目前我正在使用 XMLHttpRequest 而不是加载网页(速度更快并且使用更少的 CPU)。

有趣的是,上面的链接似乎表明 setInterval 和 SetTimeout 是专门针对限制的,我想知道这是否意味着我可以使用其他函数来代替。

我也见过这个,但我想我只能将其用于我拥有的网站?

javascript greasemonkey tampermonkey

5
推荐指数
1
解决办法
1172
查看次数

使用 Nodejs 实时抓取聊天记录

我想做的是在 NodeJs 上构建一个抓取应用程序,它可以实时监视聊天并将某些消息存储在任何数据库中?

我想做的是以下内容,我想从聊天平台流中捕获数据,从而捕获一些有用的信息来帮助那些正在做流媒体服务的人;

但我不知道如何开始使用 NodeJs 来做到这一点,

到目前为止我所能做的是捕获消息的数据,但是我无法实时监控新消息,这方面有什么帮助吗?

到目前为止我做了什么:

服务器.js

var express     = require('express');
var fs          = require('fs');
var request     = require('request');
var puppeteer = require('puppeteer');
var app         = express();

app.get('/', function(req, res){

    url = 'https://www.nimo.tv/live/6035521326';

    (async() => {
        
        const browser = await puppeteer.launch();

        const page = await browser.newPage();
        await page.goto(url);
        await page.waitForSelector('.msg-nickname');

        const messages = await page.evaluate(() => {
            return Array.from(document.querySelectorAll('.msg-nickname'))
                    .map(item => item.innerText);
        });

        console.log(messages);
    })();
    res.send('Check your console!')

});

app.listen('8081') 
console.log('Magic happens on …
Run Code Online (Sandbox Code Playgroud)

node.js firebase puppeteer

3
推荐指数
1
解决办法
1864
查看次数