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

如何用Python Requests提交表单数据?解决提交链接未知问题

嘿,我来帮你搞定这个用Requests提交表单的难题!不用纠结提交链接的生成规则,咱们直接从浏览器开发者工具里扒现成的请求细节,一步步模拟就行:

处理未知提交链接的表单提交方案

1. 先从开发者工具扒全请求信息

打开浏览器F12调出开发者工具,切换到网络面板,然后手动提交一次表单:

  • 找到提交时触发的POST请求(通常名称带login/submit这类关键词)
  • 复制这个请求的完整URL(就是带action=Login、module=Users这些Query参数的链接)
  • 记下请求里的所有Form data字段,包括__vtrftk、sid这些动态生成的参数

2. 用Requests模拟完整提交流程

第一步:先拿初始页面的Cookie和动态参数

很多网站的__vtrftk、sid是在初始页面加载时生成的,所以得先请求初始链接把这些信息存下来:

import requests
from bs4 import BeautifulSoup

# 用Session维持会话,自动处理Cookie传递
session = requests.Session()

# 请求初始页面,获取动态参数和Cookie
initial_url = "你的初始链接地址"
response = session.get(initial_url)

# 解析页面源码,提取动态参数(如果参数在页面HTML里的话)
soup = BeautifulSoup(response.text, "html.parser")
vtrftk = soup.find("input", {"name": "__vtrftk"})["value"]
sid = soup.find("input", {"name": "sid"})["value"]

第二步:构造表单数据并提交

把从开发者工具里拿到的所有Form字段整理成字典,然后发送POST请求:

# 构造完整的表单数据,别忘了加你的账号密码等必填项
form_data = {
    "__vtrftk": vtrftk,
    "sid": sid,
    "username": "你的用户名",
    "password": "你的密码"
    # 其他从开发者工具看到的Form字段也得加上
}

# 用从开发者工具复制的完整提交URL
submit_url = "https://目标网站域名/对应路径?action=Login&module=Users"

# 发送提交请求
submit_response = session.post(submit_url, data=form_data)

# 验证提交结果,比如检查响应里的关键词
if "登录成功" in submit_response.text:
    print("表单提交搞定啦!")
else:
    print("提交失败,检查参数或Cookie是否正确哦")

3. 几个关键注意事项

  • 一定要用requests.Session(),它会自动帮你维持会话Cookie,避免因为Cookie丢失导致验证失败
  • 如果__vtrftk是JS生成的(不在页面HTML里),那要么模拟JS生成逻辑,要么直接从开发者工具的请求里复制参数值(注意这类参数可能有有效期,要及时用)
  • 有些网站会校验User-Agent,你可以给请求加个浏览器头:
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}
# 在get和post请求里加上headers=headers参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:04:24