gpt4 book ai didi

python - 在 python 中已经打开的 url 上发送 POST 请求

转载 作者:行者123 更新时间:2023-12-01 03:56:11 24 4
gpt4 key购买 nike

基本上我想发送以下表单的 POST 请求。

<form method="post" action="">
449 * 803 - 433 * 406 = <input size=6 type="text" name="answer" />
<input type="submit" name="submitbtn" value="Submit" />
</form>

我基本上想做的是通读页面,找出表单中的方程式,计算答案,输入答案作为参数以随 POST 请求发送,但不打开页面的新 URL,如每次打开页面时都会出现一个新的方程,因此以前获得的结果已过时。最后我想获取发送 POST 请求后出现的页面。我陷入了必须发送 POST 请求而不打开新 URL 实例的部分。另外,我希望获得有关如何在 POST 请求后再次阅读页面的帮助。 (调用read()就足够了吗?)

我目前的Python代码看起来像这样。

import urllib, urllib2

link = "http://www.websitetoaccess.com"
f = urllib2.urlopen(link)

line = f.readline().strip()
equation = ''
result = ''
file1 = open ('firstPage.html' , 'w')
file2 = open ('FinalPage.html', 'w')

for line in f:
if 'name="answer"' in line:
result = getResult(line)
file1.write(line)

file1.close()

raw_params = {'answer': str(result), 'submit': 'Submit'}
params = urllib.urlencode(raw_params)
request = urllib2.Request(link, params)
page = urllib2.urlopen(request)

file2.write(page.read())
file2.close()

最佳答案

是的,最后一个链接确实很有帮助,事实证明我只需要根据这样的请求创建一个新 session :

s = requests.session()
res1 = s.get(url)

并将其添加为发布请求

res2 = s.post(url, data=post_params)

我相信这达到了存储来自get请求的cookie并与post请求一起发送的结果,从而保持了与之前的get请求相同的问题。非常感谢您在这个问题上的帮助和协助 Loknar。

关于python - 在 python 中已经打开的 url 上发送 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37426228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com