NodeJS puppeteer chrome 动态js内容

oo7oh9g9  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(118)

尝试通过lambda刮一个网站。它装的很好,装的是 chrome 和 puppet 。
然而,无论何时,都应该通过第三方JS脚本加载额外的内容。例如,插件example.js将广告呈现给<div class="advertisments"></div>,该广告存在于由输入类型触发的web内容中。假设行为是-

  • 用户在输入中键入2个字母“re”。
  • example.js将某些广告加载到.advertisments div。

出于某种原因,我的 chrome 要么不允许这样的事情,要么只是忽略它。我的工作流程是

const page = await pupBrowser.newPage()
page.goto('example.com', { waitUntil: 'networkidle2'})
const input = await page.$('.someInput')
await input.type('re')
await delay(2000ms)
await page.waitForElement('.advertisments')

字符串
出于某种原因,我的广告是空的λ puppet chrome ,在本地 chrome 的工作。
我的论点是:

[
  '--allow-running-insecure-content',
  '--autoplay-policy=user-gesture-required',
  '--disable-background-timer-throttling',
  '--disable-component-update',
  '--disable-domain-reliability',
  '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process',
  '--disable-ipc-flooding-protection',
  '--disable-print-preview',
  '--disable-dev-shm-usage',
  '--disable-setuid-sandbox',
  '--disable-site-isolation-trials',
  '--disable-speech-api',
  '--disable-web-security',
  '--disk-cache-size=33554432',
  '--enable-features=SharedArrayBuffer',
  '--hide-scrollbars',
  '--ignore-gpu-blocklist',
  '--in-process-gpu',
  '--mute-audio',
  '--no-default-browser-check',
  '--no-first-run',
  '--no-pings',
  '--no-sandbox',
  '--no-zygote',
  '--use-gl=angle',
  '--use-angle=swiftshader',
  '--window-size=1920,1080',
  '--start-maximized'
]

c0vxltue

c0vxltue1#

正如评论者所建议的那样,我发现了类似的推理。
在本地PC上运行时,它的行为与在lambda上不同。正如我进一步发现的那样,简单的网站确实会阻止来自bot的流量(考虑lambda IP)。
简单地说,如果别人运行在类似的麻烦-使用傀儡隐身插件,否则分析网站。
由于我工作的网站-托管在shopify上,似乎没有简单的走动。

相关问题