Pio*_*cik 4 javascript cookies google-chrome-headless puppeteer
如何使用木偶戏从网站获取第三方cookie?
对于第一方我知道我可以使用
await page.cookies()
Vav*_*off 15
我有兴趣知道答案,所以也找到了解决方案,它适用于当前版本的Chrome 68.0.3419.0和Puppeteer v1.4.0.
使用内部木偶操作 page._client
方法,我们可以直接使用Chrome DevTools协议:
(async() => {
const browser = await puppeteer.launch({});
const page = await browser.newPage();
await page.goto('https://stackoverflow.com', {waitUntil : 'networkidle2' });
// Here we can get all of the cookies
console.log(await page._client.send('Network.getAllCookies'));
})();
Run Code Online (Sandbox Code Playgroud)
在返回的对象中有google.com和imgur.com的cookie,这是我们用普通浏览器javascript无法获得的:
您可以创建一个Chrome的DevTools协议会话在页面目标使用target.createCDPSession()
。然后您可以发送Network.getAllCookies
以获取所有浏览器 cookie 的列表。
该page.cookies()
函数将只返回当前 URL 的 cookie。因此,我们可以从所有浏览器 cookie 中过滤掉当前页面 cookie,以仅获取第三方 cookie 列表。
const client = await page.target().createCDPSession();
const all_browser_cookies = (await client.send('Network.getAllCookies')).cookies;
const current_url_cookies = await page.cookies();
const third_party_cookies = all_browser_cookies.filter(cookie => cookie.domain !== current_url_cookies[0].domain);
console.log(all_browser_cookies); // All Browser Cookies
console.log(current_url_cookies); // Current URL Cookies
console.log(third_party_cookies); // Third-Party Cookies
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1430 次 |
最近记录: |