zoukankan      html  css  js  c++  java
  • puppeteer注入cookie然后访问页面

    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: {
             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`);
    
    })()
    
  • 相关阅读:
    2012619 win7环境Jooma建站手记解决问题
    linux学习(4)ubuntu开机自动挂载nfs服务器上的home分区
    linux学习(3)nginx tomcat集群
    oracle to_date 函数
    inux学习(2)vim设置
    linux学习(1)常用命令入门
    tomcat域名绑定
    tomcat内存溢出问题解决思路
    TreeView控件无限级 一次性加载和异步加载剖析
    数据查询支持中文拼音首字母模糊检索
  • 原文地址:https://www.cnblogs.com/c-x-a/p/11250662.html
Copyright © 2011-2022 走看看