我想要像无头 chrome 中的 mutationobserver 一样跟踪更改的 DOM。所以我在学习 puppeteer 库,但不知道如何使用。
可以在 puppeteer 中跟踪 DOM 变化吗??谢谢
我正在使用 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 是专门针对限制的,我想知道这是否意味着我可以使用其他函数来代替。
我也见过这个,但我想我只能将其用于我拥有的网站?
我想做的是在 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)