You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python requests正确设置Cookie并配置浏览器请求头规避反爬

解决方法

从浏览器获取请求头和Cookie的步骤

  • 打开目标网站,登录到你需要的会话状态
  • 按下F12打开开发者工具,切换到「网络(Network)」标签
  • 刷新页面,在网络请求列表里找到和你爬取地址域名一致的请求,点击该请求
  • 在右侧详情面板找到「请求头(Request Headers)」区块,里面包含所有需要的User-Agent、Accept等请求头字段;同时可以找到「Cookie」字段,就是当前会话的Cookie值

注意:请求头里的Cookie字段可以直接复制使用,也可以单独拆分每个Cookie的键值对使用。

配置到requests请求的方法

你可以直接把请求头做成字典,传入session的headers属性,后续所有请求都会自动携带这些配置:

import requests
import bs4
import re

# 替换成你从浏览器复制的请求头,反爬严格的话可以把所有请求头字段都复制进来
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",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
    "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
    "Cookie": "你从浏览器复制的完整Cookie字符串"
}

r = requests.session()
# 给session全局配置请求头,后续所有get/post请求都会自动携带
r.headers.update(headers)

# 原有逻辑不需要修改
response = r.get(url=url_to_start)
price_table=[]
while len(price_table) < 100:
    if response.status_code == 200:
        soup = bs4.BeautifulSoup(response.text, features='html.parser')
        souplist = soup.find_all(attrs={"class": "col-xs-3"})
        souptxt=''
        for i in souplist:
            souptxt+=str(i)
        list1=re.findall(patterne,souptxt)
        price_table.extend(list1)
        response = r.get(url=url_to_follow)

如果你不想把Cookie拼在headers里,也可以单独给session设置Cookie:

# 把Cookie拆成键值对的格式
cookies = {
    "cookie键1": "cookie值1",
    "cookie键2": "cookie值2"
}
r.cookies.update(cookies)
  • 浏览器的会话Cookie有有效期,如果后续请求出现403或者登录失效,重新从浏览器复制最新的Cookie替换即可。
  • 如果反爬机制还校验Referer、Origin等字段,也可以一并加到headers字典里。

内容的提问来源于stack exchange,提问作者user14087589

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:24:04