|
浏览器开发者工具(F12)里的何获Application面板,是取网获取cookie最直接的入口。按下F12,何获切到Application标签,取网左侧菜单展开Cookies,何获点开你正在访问的取网那个域名,右侧表格里每一行就是何获一个cookie。Name是取网名字,Value是何获值,Expires是取网过期时间,HttpOnly那一列如果打勾,何获说明JavaScript读不到它——这玩意儿只能靠浏览器自动带上。取网 但多数时候你拿cookie不是何获为了看,是取网为了用。比如写爬虫、何获做自动化测试、模拟登录状态。这时候你得把cookie从浏览器里导出来,变成代码能用的格式。最省事的办法是装个EditThisCookie之类的插件,点一下就能把当前网站所有cookie复制成JSON或字符串。我自己的习惯是直接复制成"name=value; name2=value2"这种格式,因为大多数HTTP库的header里直接塞这个字符串就能用。 有个细节容易踩坑——cookie的作用域。你从a.com拿到的cookie,放到b.com的请求里,服务器根本不认。哪怕你手动改了Host头也没用,现在正经网站都会校验Origin和Referer。所以抓cookie之前先确认你访问的就是目标域名,别拿百度首页的cookie去请求谷歌,那纯属自嗨。 再说说HttpOnly这个坑。有些网站把登录凭证放在HttpOnly cookie里,你通过document.cookie根本拿不到。这时候要么用浏览器插件(插件有权限读HttpOnly),要么用Selenium这类自动化工具直接操作浏览器上下文。我之前写脚本抓某个后台系统,就是靠Selenium登录后从driver.get_cookies()里把数据掏出来的——那玩意儿在开发者工具里能看到,但JavaScript就是摸不着,典型的看得见吃不着。 还有个野路子,适合临时应急。打开浏览器无痕模式,按F12进Network面板,勾选Preserve log,然后手动登录一次。找到那个登录请求,点开它的Headers,往下翻能看到完整的Cookie请求头。复制下来直接用。这方法虽然土,但对付那些加了反爬、cookie每次会话都变形的网站特别管用——因为你是真实浏览器环境里拿到的,跟服务器那边完全对得上。 最后提醒一句,cookie这东西跟钥匙一样,别乱扔。你要是把带登录态的cookie贴到公开论坛上,等于把账号密码送人了。我见过有人调试时把cookie截图发群里,结果账号被拿去刷广告,那叫一个惨。自己用的时候注意时效性,很多cookie几小时就失效,别存个十天半月再拿来用,那会儿服务器早把你忘了。 |
