Puppeteer 无法导航至 url (ERR_EMPTY_RESPONSE)
Puppeteer fails to navigate to url (ERR_EMPTY_RESPONSE)
问题
这是您可以编写的最简单的代码,用于使用 puppeteer
:
导航到页面
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
page.on('response', response => {console.log(response.request().url())});
page.on('error', error => {console.error(error.message)});
await page.goto('https://www.vueling.com/es');
await browser.close();
})();
但这会产生错误:
UnhandledPromiseRejectionWarning: Error: net::ERR_EMPTY_RESPONSE at https://www.vueling.com/es
问题
当我在 Chrome/Chromium 中尝试自己时,此页面加载完美(5 ~7" 中有 ~135 个请求)。我的问题是,这是 puppeteer
的事情,是 Chrome 的错还是我遗漏了什么?为什么这不起作用?
环境
- 人偶版本:1.10.0
- 平台/OS版本:macOS High Sierra 10.13.6
- Node.js版本:10.13
一些网站可能正在检测 puppeteer,因为它有一个特定的用户代理:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/72.0.3617.0 Safari/537.36
。你可以注意到这个 Headless Chrome。
如果您在使用常规浏览器用户代理加载页面之前覆盖您的用户代理:await page.setUserAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
,它将按预期工作。
如果一个网站试图检测木偶操纵者(有很多其他方法可以做到),那是因为他们不希望他们的信息被自动访问。因此,如果您 运行 在不属于您的网站上使用它,您应该尊重它的数据。
问题
这是您可以编写的最简单的代码,用于使用 puppeteer
:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
page.on('response', response => {console.log(response.request().url())});
page.on('error', error => {console.error(error.message)});
await page.goto('https://www.vueling.com/es');
await browser.close();
})();
但这会产生错误:
UnhandledPromiseRejectionWarning: Error: net::ERR_EMPTY_RESPONSE at https://www.vueling.com/es
问题
当我在 Chrome/Chromium 中尝试自己时,此页面加载完美(5 ~7" 中有 ~135 个请求)。我的问题是,这是 puppeteer
的事情,是 Chrome 的错还是我遗漏了什么?为什么这不起作用?
环境
- 人偶版本:1.10.0
- 平台/OS版本:macOS High Sierra 10.13.6
- Node.js版本:10.13
一些网站可能正在检测 puppeteer,因为它有一个特定的用户代理:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/72.0.3617.0 Safari/537.36
。你可以注意到这个 Headless Chrome。
如果您在使用常规浏览器用户代理加载页面之前覆盖您的用户代理:await page.setUserAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
,它将按预期工作。
如果一个网站试图检测木偶操纵者(有很多其他方法可以做到),那是因为他们不希望他们的信息被自动访问。因此,如果您 运行 在不属于您的网站上使用它,您应该尊重它的数据。