许多网站根据用户的地理位置定制内容。要修改用户的地理位置,可以使用Page.setGeolocation
方法。
示例
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ devtools: true });
const page = await browser.newPage();
// 授予更改地理位置的权限
const context = browser.defaultBrowserContext();
await context.overridePermissions('https://www.qikegu.com', ['geolocation']);
await page.goto('https://www.qikegu.com');
await page.waitForSelector('title');
// 设置为北极位置
await page.setGeolocation({ latitude: 90, longitude: 0 });
// await browser.close();
})();
上面示例中,先授予浏览器环境适当的权限,然后使用setGeolocation
用北极坐标覆盖当前的地理位置。
运行脚本后,在打开的浏览器的console中,可以打印出用户经纬度:
> navigator.geolocation.getCurrentPosition((pos) => console.info('Latitude:', pos.coords.latitude, ', Longitude:', pos.coords.longitude));
Latitude: 90 , Longitude: 0