我正在从事一个从酒店网站获取定价信息的项目,但在 puppeteer 中加载网站时无法执行任何搜索。
这是我打开 Chrome 的 JavaScript 片段。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false, devTools: false });
const page = await browser.newPage();
await page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3683.103 Safari/537.36');
await page.goto('https://www.hyatt.com/');
})();
Run Code Online (Sandbox Code Playgroud)
他们如何检测到我正在使用由 Puppeteer 控制的 Chrome,即使它运行的是一个令人头疼的浏览器?
谢谢
我想将自定义配置文件传递给 Puppeteer。首先,我尝试通过我的真实 Google Chrome 配置文件:
const browser = await puppeteer.launch({
userDataDir: '/Users/[USERNAME]/Library/Application Support/Google/Chrome/Default',
headless: false,
slowMo: 250,
...
}Run Code Online (Sandbox Code Playgroud)
但是当浏览器打开时,如果我转到“设置”,它会显示Person 1而不是我的 Google Chrome 个人资料中的数据
上面的 userDataDir 路径是我Profile Path在 Google Chrome 上访问时显示的路径chrome://version(其中 [USERDATA] 是我的用户名)
我也试过 userDataDir: '~/Library/Application Support/Google/Chrome/Default'
我使用的是
Puppeteer 0.11.0
Node 8.4.0
NPM 5.2.0
macOS El Capitan 10.11.6
MacBook Pro Retina,15 英寸,2015 年中
javascript google-chrome e2e-testing google-chrome-headless puppeteer