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

如何用BeautifulSoup4提取指定的CSRF Token?

提取HTML底部CSRF Token的最优方案

情况1:Token在隐藏<input>标签中

如果HTML底部的CSRF Token放在隐藏input里,比如:

直接用BeautifulSoup定位标签并提取value属性:

from bs4 import BeautifulSoup

# html_content为获取到的完整HTML文本
soup = BeautifulSoup(html_content, 'html.parser')
# 根据实际HTML的name/id属性调整定位条件
csrf_token = soup.find('input', {'name': 'csrf-token'})['value']

情况2:Token在页面底部的<script>标签中

如果Token以JS变量形式存在于底部script里,比如:

先定位script标签,再用正则匹配提取:

from bs4 import BeautifulSoup
import re

soup = BeautifulSoup(html_content, 'html.parser')
# 取页面最后一个script标签(对应底部位置)
script_tag = soup.find_all('script')[-1]
# 根据实际变量名调整正则表达式
match = re.search(r'window\.CSRF_TOKEN\s*=\s*"([^"]+)"', script_tag.string)
if match:
    csrf_token = match.group(1)

情况3:Token在普通文本容器中

如果Token直接放在底部的文本元素(如<div>/<p>)里,比如:

0HFqDSNx1c+1PUW36nrGLwuuVaYMDNWNa22trb7vXbIEGrFOizBtxVH/1z1UKG0DWMU9HcZOVHyTU//XVyLTpw==

直接提取元素文本内容:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html_content, 'html.parser')
# 根据class/id定位容器,strip=True去除多余空格
csrf_token = soup.find('div', {'class': 'csrf-token'}).get_text(strip=True)

关键注意点

  • 定位标签的属性(name/id/class)要和实际HTML完全匹配,注意大小写
  • 若页面是JS动态渲染生成Token,BeautifulSoup无法直接提取,需用selenium或playwright模拟浏览器加载后再处理
  • 提取到的Token可直接放入登录请求的Headers或表单参数中提交

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:05:23