【问题标题】:Puppeteer: get localStorage from a websitePuppeteer:从网站获取 localStorage
【发布时间】:2020-12-04 00:46:56
【问题描述】:

我需要使用 Puppeteer 获取网站保存的所有数据:cookie 和 localStorage(例如登录后)。我已阅读所有 Puppeteer 文档,但找不到任何关于 localStorage 的信息。

我可以获取 cookie,但我不知道获取 localStorage。例如:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch()
  const page = await browser.newPage()
  await page.goto('https://www.twitter.com/')

  //
  // code for login
  //

  const returnedCookie = await page.cookies();  
  console.log(returnedCookie)
  // const localStorage = ??
  // console.log(localStorage)

  await browser.close()
})()

【问题讨论】:

    标签: javascript node.js web-scraping local-storage puppeteer


    【解决方案1】:

    对我有用的更简单的方法

    const localStorage = await page.evaluate(() => Object.assign({}, window.localStorage));

    【讨论】:

    • 效果很好!如果有人想检查,await page.evaluate(() => window.localStorage); 将不起作用:-)
    【解决方案2】:

    我找到了路:

    const puppeteer = require('puppeteer');
    
    (async () => {
      const browser = await puppeteer.launch()
      const page = await browser.newPage()
      await page.goto('https://www.twitter.com/')
    
      //
      // code for login
      //
    
      const returnedCookie = await page.cookies();  
      console.log(returnedCookie)
    
      await page.waitFor( 10000 );
      const localStorageData = await page.evaluate(() => {
        let json = {};
        for (let i = 0; i < localStorage.length; i++) {
          const key = localStorage.key(i);
          json[key] = localStorage.getItem(key);
        }
        return json;
      });
    
      console.log(localStorageData)
    
      await browser.close()
    })()
    

    【讨论】:

      【解决方案3】:

      Guido 的回答有效,但如果您只想从本地/会话存储返回单个值(而不是整个本地/会话存储对象),那么您可以使用:

      const localStorage = await page.evaluate(() =&gt; localStorage.getItem("myKey"));

      注意:如果为空,则返回null

      Puppeteer 5.3.1.

      【讨论】:

        猜你喜欢
        • 2019-06-18
        • 2021-08-19
        • 1970-01-01
        • 2022-12-13
        • 2014-08-17
        • 1970-01-01
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        相关资源
        最近更新 更多