• 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`);
    
    })()
    
  • 相关阅读:
    软件开发者路线图 从学徒到高手 读后感
    Greplin:搜索你的所有在线社交内容
    黄小琥 / 简单/不简单 / 没那么简单
    讯雷 云系列 不错
    来自Amazon、Cloudera、Microsoft与IBM的HadoopasaService
    FAQs and feedback
    I've Never Been To Me by Charlene with lyrics
    烧香网 历害
    4A公司
    一个新的比较网站,做的不错
  • 原文地址:https://www.cnblogs.com/c-x-a/p/11250662.html
Copyright © 2020-2023  润新知