如何通过Chrome获取凭证,用Python Requests模拟已登录状态爬取网站?
你的思路完全可行,核心就是利用登录后的Cookie来让目标网站识别你为已登录用户。
网站判断用户是否处于登录状态,本质是校验请求中携带的Cookie是否包含有效的身份认证凭证。你提到的spc_f就是这类凭证的典型例子——不同网站的认证Cookie字段名可能不同,常见的还有sessionid、JSESSIONID、auth_token、token等,它们的作用都是唯一标识已登录的用户会话。
具体操作步骤:
- 在Chrome中完成目标网站的登录,按下
F12打开开发者工具,切换到「Application」(或部分版本叫「存储」)标签,展开「Cookies」并选择目标网站的域名。 - 在Cookie列表中找到对应身份认证的字段(比如你说的
spc_f),复制它的「值」。有些网站可能需要多个Cookie组合才能完成认证,比如同时携带sessionid和csrf_token。 - 在Python Requests的GET请求中,将复制的Cookie添加到请求参数里,示例代码如下:
import requests # 可从Chrome请求头中复制真实的User-Agent,避免被识别为非浏览器请求 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36' } # 填入从Chrome复制的认证Cookie cookies = { 'spc_f': '这里替换成你复制的spc_f值', # 如果有其他必要的认证Cookie,一并添加 } # 发送请求 response = requests.get('目标网站的具体URL', headers=headers, cookies=cookies) # 此时response.content就是已登录状态下的HTML响应
注意事项:
- 这类认证Cookie通常有有效期,过期后需要重新从登录状态的Chrome中获取新值。
- 部分网站会额外校验请求头的
Referer、Origin等字段,如果请求被拦截,可以从Chrome的请求详情中复制这些字段加入到headers里。 - 少数网站会结合IP、设备指纹等信息做会话验证,这种情况下单纯复制Cookie可能失效,但大部分常规网站的认证机制都支持这种方式。
内容的提问来源于stack exchange,提问作者Zui Zui
相关产品推荐
相关产品推荐

