puppeteer注入cookie然后访问页面
2024-10-06 15:48:23
var puppeteer = require('puppeteer');
const devices = require('puppeteer/DeviceDescriptors');
const iphone = devices["iPhone 6"]
const path = require('path');
const pathToExtension = path.join(__dirname, './chrome-mac/Chromium.app/Contents/MacOS/Chromium');
const conf = {
headless: false,
executablePath: pathToExtension,
defaultViewport: {
width: 1300,
height: 900
}
}
let cookieString = `
BDUSS=TNJUFJDbTdoAAAC8DzIkbXV6aWNvNDI1GGGGGGGGGGGGGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1TLF0dUyxdS;
`
const addCookies = async (cookies_str, page, domain) => {
let cookies = cookies_str.split(';').map(
pair => {
let name = pair.trim().slice(0, pair.trim().indexOf('='));
let value = pair.trim().slice(pair.trim().indexOf('=') + 1);
return {name, value, domain}
});
await Promise.all(cookies.map(pair => {
console.log(pair);
return page.setCookie(pair)
}))
};
(async () => {
const browser = await puppeteer.launch(conf);
const page = await browser.newPage();
ps= await browser.pages()
await ps[0].close()
//await page.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36");
await page.emulate(iphone)
await page.evaluateOnNewDocument(() => {
delete navigator.__proto__.webdriver;
});
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'plugins', {
get: () => [1, 2, 3, 4, 5],
});
});
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'languages', {
get: () => ['en-US', 'en'],
});
});
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'platform', {
get: () => "Linux armxxxxx",
configurable: true
});
});
await page.evaluateOnNewDocument(() => {
window.navigator.chrome = {
runtime: {},
getUserMedia: {},
};
});
await addCookies(cookieString, page, 'www.baidu.com');
await page.goto(`https://www.baidu.com`);
})()
最新文章
- adb工具获取appPackage和appActivity
- linux自动更新代码,打包发布
- 【HOW】如何通过URL给Reporting Services报表传递参数
- IOS 音频开发文件大小计算
- poj3349 哈希
- 【上传AppStore】iOS项目上传到AppStore步骤流程(第一章) - 上传新的app
- POJ 2001-Shortest Prefixes(Trie 入门)
- asp.net webform生命周期
- Python学习笔记(Ⅰ)——Python程序结构与基础语法
- 开始转变方向,学习Linux——《Linux就该这么学》
- dom4j基础教程【转】
- flask_SQLALchemy之多表查询
- 四:python 对象类型详解一:数字(下)
- SpringMVC学习笔记七:SpringMVC统一异常处理
- 另辟蹊径 直取通州的“墨迹天气”APP应用的成功故事
- ubuntu14.04_install_gitlab_platform
- C语言编程的环境以及架构
- 性能分析_linux服务器CPU_Load Average
- SQL联合查询中的关键语法
- [Database] Redis 随笔