diff --git a/package-lock.json b/package-lock.json index e926050..8ef4bc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -396,6 +396,14 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, + "chrome-aws-lambda": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/chrome-aws-lambda/-/chrome-aws-lambda-8.0.2.tgz", + "integrity": "sha512-a4VEX6DknxISPqGLksZa/JuEnjc4nLXaG0BMp5c9qERvJ/eBHPUJ7oCRQQC+SxSxuxsEwxbBj2RBlCQbivnihg==", + "requires": { + "lambdafs": "^2.0.3" + } + }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -1195,6 +1203,143 @@ "json-buffer": "3.0.0" } }, + "lambdafs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lambdafs/-/lambdafs-2.0.3.tgz", + "integrity": "sha512-5YWwZA/QKk09GdfcJ/ABVO+bpFoGlnTBa5jmyM8Kt9yIzl2lDDVBPLK+Aenq2UEcuDpqxXIYI5zLB7VZNepTrg==", + "requires": { + "tar-fs": "^2.1.1" + }, + "dependencies": { + "base64-js": { + "version": "1.5.1", + "bundled": true + }, + "bl": { + "version": "4.1.0", + "bundled": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "buffer": { + "version": "5.7.1", + "bundled": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "chownr": { + "version": "1.1.4", + "bundled": true + }, + "end-of-stream": { + "version": "1.4.4", + "bundled": true, + "requires": { + "once": "^1.4.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "bundled": true + }, + "ieee754": { + "version": "1.2.1", + "bundled": true + }, + "inherits": { + "version": "2.0.4", + "bundled": true + }, + "mkdirp-classic": { + "version": "0.5.3", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } + } + }, + "tar-fs": { + "version": "2.1.1", + "bundled": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "tar-stream": { + "version": "2.2.0", + "bundled": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, "latest-version": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", diff --git a/package.json b/package.json index 83ae426..0598a53 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "license": "MIT", "dependencies": { "cheerio": "^1.0.0-rc.5", + "chrome-aws-lambda": "^8.0.2", "express": "^4.17.1", "puppeteer": "^9.0.0", "request": "^2.88.2" diff --git a/src/en/wuxiaworld/wuxiaworld.js b/src/en/wuxiaworld/wuxiaworld.js index bfb6930..a2829f4 100644 --- a/src/en/wuxiaworld/wuxiaworld.js +++ b/src/en/wuxiaworld/wuxiaworld.js @@ -1,6 +1,7 @@ const express = require("express"); const cheerio = require("cheerio"); const request = require("request"); +const chromium = require("chrome-aws-lambda"); const puppeteer = require("puppeteer"); const baseUrl = "https://www.wuxiaworld.com/"; @@ -9,9 +10,12 @@ const router = express.Router(); router.get("/novels/", async (req, res) => { let url = `https://www.wuxiaworld.com/novels`; - const browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], + args: [...chromium.args, "--hide-scrollbars", "--disable-web-security"], + defaultViewport: chromium.defaultViewport, + executablePath: await chromium.executablePath, + headless: true, + ignoreHTTPSErrors: true, }); const page = await browser.newPage(); @@ -47,9 +51,12 @@ router.get("/novels/", async (req, res) => { router.get("/novel/:novelUrl", async (req, res) => { let novelUrl = req.params.novelUrl; let url = `${baseUrl}novel/${novelUrl}/`; - const browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], + args: [...chromium.args, "--hide-scrollbars", "--disable-web-security"], + defaultViewport: chromium.defaultViewport, + executablePath: await chromium.executablePath, + headless: true, + ignoreHTTPSErrors: true, }); const page = await browser.newPage(); @@ -123,9 +130,12 @@ router.get("/novel/:novelUrl/:chapterUrl", async (req, res) => { const novelUrl = `${req.params.novelUrl}/`; const chapterUrl = `${req.params.chapterUrl}/`; - const browser = await puppeteer.launch({ - args: ["--no-sandbox", "--disable-setuid-sandbox"], + args: [...chromium.args, "--hide-scrollbars", "--disable-web-security"], + defaultViewport: chromium.defaultViewport, + executablePath: await chromium.executablePath, + headless: true, + ignoreHTTPSErrors: true, }); const page = await browser.newPage();