【问题标题】:Python Requests: use default form valuePython 请求:使用默认表单值
【发布时间】:2014-08-20 19:29:14
【问题描述】:

我正在从 Mechanize 迁移到 Requests,因为 Python 3.x 尚不支持 Mechanize。我想出了这个简单的脚本来发布数据,但是返回的页面显示错误:错误:无法加载 FIXES 数据库!

url = "http://rfinder.asalink.net/free/"
payload = {"id1": "EGLL", "id2": "LOWW"}
r = requests.post(url, payload)

使用 mechanize 我只需要发布 id1id2 字段并提交表单。所有其他字段均为默认字段。

我认为这就是问题所在。如何告诉 Requests 发布所有默认数据 + id1id2 字段?

【问题讨论】:

  • Requests 只是一个 HTTP 客户端库,无法解析 HTML 表单以获取其默认字段名称和值。您应该在脚本中手动对这些字段进行硬编码,或者使用 HTML 解析器(如 BeautifulSoup)每次解析表单并提取字段名称和默认值。

标签: python post python-requests


【解决方案1】:

这是一个带有硬编码字段的工作示例:

import requests

url = "http://rfinder.asalink.net/free/autoroute_rtx.php"

payload = {
    'id1':'lirf',
    'ic1':'',
    'id2':'egll',
    'ic2':'',
    'minalt':'FL330',
    'maxalt':'FL330',
    'lvl':'B',
    'dbid':1408,
    'usesid':'Y',
    'usestar':'Y',
    'easet':'Y',
    'rnav':'Y',
    'nats':'',
    'k':235644007
}

r = requests.post(url, data=payload)

print( r.text )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多