我有一个request.post的问题,而不是返回带有结果的html代码我得到了起始方的html代码。
import requests
def test(pdb):
URL = "http://capture.caltech.edu/"
r = requests.post(URL,files={"upfile": open( pdb)})
content=r.text
print(content)
print(r.headers)
def main():
test("Model.pdb")
难道我必须定义我想要使用哪种postmethod?因为html文件中有两个。如果是这种情况我该怎么做?(我想使用第二个。)
<FORM ACTION="result.cgi" METHOD=POST>
<form action="capture_ul.cgi" method="post" enctype="multipart/form-data">
我知道这里有类似的问题,但那里的答案没有帮助,因为错误是使用了params而不是文件,这应该不是问题。
提前致谢。
答案 0 :(得分:2)
1 - 您发布的网址错误,应为http://capture.caltech.edu/capture_ul.cgi
。
2 - 必须发送一个隐藏字段(name='note'
)(空字符串的值就足够了)。
...
def test(pdb):
URL = "http://capture.caltech.edu/capture_ul.cgi"
r = requests.post(URL,files={"upfile": open(pdb)}, data={'note': ''})
content=r.text
print(content)
print(r.headers)
...