➕ 新增依赖puppeteer-extra
puppeteer-extra-plugin-stealth
This commit is contained in:
10
lib/puppeteer/package.json
Normal file
10
lib/puppeteer/package.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "puppeteer",
|
||||
"version": "1.0.0",
|
||||
"main": "puppeteer.js",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"puppeteer-extra": "^3.3.4",
|
||||
"puppeteer-extra-plugin-stealth": "^2.11.1"
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,17 @@
|
||||
import fs from 'fs'
|
||||
import _ from 'lodash'
|
||||
import { devices } from 'puppeteer'
|
||||
import pet from '../../../../lib/puppeteer/puppeteer.js'
|
||||
import { Data, Version, Plugin_Name, Config } from '../../components/index.js'
|
||||
const puppeteer = await import('puppeteer')
|
||||
import { Config, Data, Plugin_Name, Version } from '../../components/index.js'
|
||||
|
||||
let puppeteer = null
|
||||
let StealthPlugin = null
|
||||
try {
|
||||
puppeteer = await import('puppeteer-extra')
|
||||
StealthPlugin = await import('puppeteer-extra-plugin-stealth')
|
||||
puppeteer.use(StealthPlugin())
|
||||
} catch {}
|
||||
|
||||
const _path = process.cwd()
|
||||
export default new (class newPuppeteer {
|
||||
constructor () {
|
||||
@@ -20,12 +29,12 @@ export default new (class newPuppeteer {
|
||||
isLandscape: false
|
||||
}
|
||||
},
|
||||
...puppeteer.devices
|
||||
...devices
|
||||
}
|
||||
this.browser = false
|
||||
this.config = {
|
||||
headless: 'chrome',
|
||||
args: ['--no-sandbox']
|
||||
args: ['--no-sandbox'],
|
||||
headless: true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,6 +139,10 @@ export default new (class newPuppeteer {
|
||||
async launch () {
|
||||
if (this.browser) return this.browser
|
||||
logger.mark('Puppeteer launching')
|
||||
if (!puppeteer) {
|
||||
logger.error(`[椰奶][Puppeteer]缺少依赖项 请到 ${logger.yellow('yenai-plugin/lib/puppeteer')} 执行 ${logger.red('pnpm i')} 或直接执行 ${logger.red('pnpm add puppeteer-extr puppeteer-extra-plugin-stealth -w')}`)
|
||||
return false
|
||||
}
|
||||
this.browser = await puppeteer.launch(this.config).catch((err) => {
|
||||
logger.error(err.toString())
|
||||
if (String(err).includes('correct Chromium')) {
|
||||
|
||||
Reference in New Issue
Block a user