从python提交Web表单并保存结果

时间:2014-07-18 17:18:52

标签: python html form-submit python-requests

我想从我的python代码访问在线计算器。我已经阅读了类似问题的回复,但无法提出有效的方法。以下代码可以访问网页并复制其内容,但我无法弄清楚如何向计算器提交内容然后保存结果。我认为提交字段称为M1value。

import requests
url = "http://www.numbertheory.org/php/classnopos.html"
payload = {'M1value':'7'}
r = requests.post(url, params=payload)
print(r.content)

很抱歉,如果我犯了愚蠢的错误。我是新来的。任何帮助是极大的赞赏。此外,我无法使用机械化,因为Python 3不支持它。

1 个答案:

答案 0 :(得分:0)

您提交的网址错误。如果您查看页面来源,请看:

<FORM ACTION="classnopos.php" METHOD="POST">

您需要发布到classnopos.php网址:

url = "http://www.numbertheory.org/php/classnopos.php"

使用该URL和您的代码,我得到的结果与在浏览器中使用该表单相同:

>>> import requests
>>> url = "http://www.numbertheory.org/php/classnopos.php"
>>> payload = {'M1value':'7'}
>>> r = requests.post(url, params=payload)
>>> print(r.content)
<html>
<body bgcolor="FFFFCCC">

reduced forms of discriminant 28 corresponding to ideal classes<br>
[1]: (1,4,-3)<br>
x<sup>2</sup>-7*y<sup>2</sup>=-1 has no solution<br>
h(7) = 1<p>
<a href="./classnopos.html">Return to main page</a><br>
</body>
</html>