Puppeteer API中的所有内容都保持不变,但你会得到一点额外的魔法✨. 木偶师对象现在公开了一个use()方法来插入puppeteer Extra插件。
是时候深入了解这些插件的功能了,看看它们将如何提升你的网络抓取游戏!
puppeteer额外插件隐形
Puppeter Extra Plugin Stealth,也称为Puppeter Stealth包括一组旨在减少机器人检测的配置。它覆盖了Puppeteer的可检测属性和设置,这些属性和设置可能会将其暴露为机器人。
有关更多详细信息,请查看我们的指南,了解如何避免被Puppeteer Stealth屏蔽。
npm install puppeteer-extra-plugin-stealth
puppeteer额外插件块资源
防止Puppeteer浏览器加载特定资源的插件。支持的资源类型包括文档、样式表、图像、媒体、字体、脚本、文本跟踪、xhr、fetch、eventsource、websocket、manifest等。
资源阻塞可以在全局和本地进行配置。
const StealthPlugin = require("puppeteer-extra-plugin-stealth")
// for ESM users:
// import StealthPlugin from "puppeteer-extra-plugin-stealth"
puppeteer.use(StealthPlugin())
然后,您可以配置资源以在所有页面上全局阻止:
npm install puppeteer-extra-plugin-block-resources
const BlockResourcesPlugin = require("puppeteer-extra-plugin-block-resources")
// for ESM users:
// import BlockResourcesPlugin from "puppeteer-extra-plugin-block-resources"
同样,您可以在本地选择要阻止的资源:
puppeteer.use(BlockResourcesPlugin({
blockedTypes: new Set(["image", "stylesheet"]),
}))
puppeteer.use(BlockResourcesPlugin()
const browser = await puppeteer.launch()
const page = await browser.newPage()
blockResourcesPlugin.blockedTypes.add("stylesheet")
await page.goto("https://www.example.com/", { waitUntil: "domcontentloaded" })