Puppeteer – 地理位置模拟

许多网站根据用户的地理位置定制内容。要修改用户的地理位置,可以使用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


浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载