继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

cookies = page.context.cookies()里面抓不到某些元素

肆伍佰
关注TA
已关注
手记 6
粉丝 0
获赞 4

在使用 Playwright 的 page.context.cookies() 方法抓取 cookies 时,如果无法抓取到特定的 cookie(如 apsid),这可能是由以下几种原因引起的:

1. Cookie 仅在特定条件下可用

某些 cookies 可能只有在特定的页面或请求环境下才会存在。例如,apsid 可能是一个在登录后才会设置的 cookie,或者只有在加载特定页面时才会生成。因此,如果你在抓取 cookies 时,页面并没有完全加载,或者相关的 cookies 还没有被设置,可能会抓不到。

解决方案:

  • 确保在调用 page.context.cookies() 时,页面已经完全加载并且所有 cookies 都已经被设置。

  • 确保在登录后正确地捕获 cookies,特别是动态加载的 cookies。

2. SameSiteSecure 属性

某些 cookies(如 apsid)可能具有 SameSiteSecure 属性,限制它们仅在特定条件下才会发送。例如,带有 SameSite=NoneSecure 属性的 cookies 只有在 HTTPS 请求下才会被设置,并且在跨站点请求中才会发送。

解决方案:

  • 确保使用 HTTPS(https://)访问页面,否则可能无法抓取到带有 SecureSameSite=None 的 cookies。

  • 使用 page.context.cookies() 在 HTTPS 请求完成后获取所有 cookies,确保页面环境符合 cookie 的要求。

3. Playwright 的 Cookies 获取时机

如果在页面加载过程中获取 cookies,某些 cookies 可能尚未设置。可以尝试使用 wait_for_load_state() 确保页面加载完成,或者使用 page.wait_for_navigation() 等方法等待页面完成所有操作。


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP