问题描述
我正在尝试使用puppeteer和MutationObserver监视网站中的更改。
为此,我必须评估javascript代码以注入变异观察者对象。
每隔n次重新加载页面时,我的问题就出现了,我的变异观察者不再注入了。
我需要检测页面何时重新加载自身,以再次注入变异观察者。
const puppeteer = require('puppeteer-extra')
const StealthPlugin = require('puppeteer-extra-plugin-stealth')
puppeteer.use(StealthPlugin())
//Ejecucion de Puppeteer
puppeteer.launch({ headless: false }).then(async browser => {
console.log('Running script..')
const page = await browser.newPage()
await page.goto('mywebsite');
//Wait for my selector
await page.waitForSelector('my-selector')
//Create a function to get data in puppeteer context
await page.exposeFunction('puppeteerLogMutation',(param1) => {
console.log('----NEW MUTATION----');
console.log(param1);
});
//Inject Mutation Observer
await page.evaluate(() => {
const observer = new MutationObserver((mutationList) => {
mutationList.forEach((mutation)=> {
//Do something with the mutation detected
//Send data to puppeteer context
puppeteerLogMutation(mutation.type)
})
});
//MutationObserver configure
const observerOptions = {
attributes: true,childList: true,subtree: true,characterData: true,attributeOldValue: true,characterDataOldValue: true
};
//Mutation observer object execution
observer.observe(target,observerOptions);
}`
很显然,在重新加载页面时,我的注入不再起作用,所以我试图检测何时重新加载页面以再次注入观察者。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)