我发现使用page.setCookie(...cookies)
方法在Github上遇到了一些麻烦。
我想知道是否有人可以使用此方法保存cookie持久性。我已经看到了解决方法(但这不是我的问题)
在这段代码中,我简单地设置了一个cookie,然后重新加载页面。重新加载页面后,cookie不再存在。我试图删除过期,以后将其设置为0、1,-1或Unix时间戳。...没有任何作用
const puppeteer = require('puppeteer');
const OPT = {
headless: false,
args: ['--no-sandbox', '--disable-setuid-sandbox', '--user-data-dir']
};
const COOKS =
[ { name: 'tdsess',
value: 'TEST_DRIVE_SESSION',
domain: 'testing-ground.scraping.pro',
path: '/',
expires: -1,
size: 24,
httpOnly: false,
secure: false,
session: true } ];
(async () => {
const URL = `http://testing-ground.scraping.pro/login`
const browser = await puppeteer.launch(OPT)
const page = await browser.newPage()
await page.goto(URL, { 'waitUntil' : 'networkidle2' })
await page.setCookie(...COOKS)
let cook = await page.cookies()
console.log(`==== first login ====`)
console.log(cook)
console.log(`==================`)
await page.reload()
console.log(`after reload`)
setInterval(async () => {
cook = await page.cookies()
console.log(cook)
}, 3000)
})()
这将输出:
==== first login ====
[ { name: 'tdsess',
value: 'TEST_DRIVE_SESSION',
domain: 'testing-ground.scraping.pro',
path: '/',
expires: -1,
size: 24,
httpOnly: false,
secure: false,
session: true } ]
==================
after reload
[]
[]
我使用的版本:
* Puppeteer 1.7.0 * Nodejs 10.8.0 *
答案 0 :(得分:0)
此问题的答案隐藏在Cookie设置的path: '/'
中。
如果您将其设置为path: '/login'
(因为您正尝试在http://testing-ground.scraping.pro/login
路线上进行注册),则它应该正确注册并且可以再次访问。
答案 1 :(得分:0)
我没有访问登录页面的正确URL
library(huxtable)
foo <- as_huxtable(matrix(rnorm(4), 2, 2))
number_format(foo) <- 0 # zero decimal places
as_Workbook(foo) # should have the right formatting
访问此页面后看起来不错。
http://testing-ground.scraping.pro/login?mode=welcome