使用request.post通过python发布多部分表单数据不起作用
我正试图通过Python2.7使用POST使用request.post通过python发布多部分表单数据不起作用,python,post,request,multipartform-data,Python,Post,Request,Multipartform Data,我正试图通过Python2.7使用POSTmultipart/form data。具体来说,我正在上传一个名为'Practice.txt')的文件,格式为FASTA基本上是这种格式: '>1(ENTER)STRINGOFSPECIFICCAPITALLETTERS' 这个网站也有一个文本框,你也可以手动输入数据(我留为空白)。这个数据站点也有复选框选项,我想选择其中的“长度”,“净电荷”,“脂肪族指数”和“疏水性”。页面底部有一个“提交”按钮。 目前,这是我在POST回复中使用的代码
multipart/form data
。具体来说,我正在上传一个名为'Practice.txt'
)的文件,格式为FASTA
基本上是这种格式:
'>1(ENTER)STRINGOFSPECIFICCAPITALLETTERS'
这个网站也有一个文本框,你也可以手动输入数据(我留为空白)。这个数据站点也有复选框选项,我想选择其中的“长度”
,“净电荷”
,“脂肪族指数”
和“疏水性”
。页面底部有一个“提交”按钮。目前,这是我在
POST
回复中使用的代码
files = {'file': ('Practice.txt', open('Practice.txt', 'rb'))}
data = {'Length':'Length', 'Net Charge':'Net Charge', 'Aliphatic Index':'Aliphatic Index','Hydrophobicity':'Hydrophobicity'}
r = requests.post(url, files=files, data=data)
r.text
问题是,当我执行r.text
时,所有这些都不会返回任何数据。使用浏览器时,网站会计算所有这些内容的值。我得到了WireShark
,我一直在尝试查看实时提要,以了解我到底在向服务器发送什么,尽管我在逐字逐句地使用代码,但它并没有返回浏览器将返回的值
有人知道为什么会发生这种情况/如何实际获取数据吗?谢谢你的意见 这将起作用:
import requests
import urllib
session = requests.Session()
file={'file':(open('practice.txt','r').read())}
url = 'http://www.camp.bicnirrh.res.in/featcalc/tt1.php'
payload = {
'length' :'length', #Length
'netcharge':'netcharge', #Net Charge
'aliphatic':'aliphatic', #Aliphatic Index
'gravy' :'gravy' #Hydrophobicity
}
raw = urllib.urlencode(payload)
response = session.post(url, files=file, data=payload)
print(response.text)
所有选项:
payload = {
'length' :'length', #Length
'netcharge' :'netcharge', #Net Charge
'amino' :'amino', #Amino acid composition
'aliphatic' :'aliphatic', #Aliphatic Index
'instability':'instability', #Instability Index
'gravy' :'gravy', #Hydrophobicity
'sec' :'sec' #Secondary Structure Propensity
}
非常感谢你!这成功了!我真的很感激@谢伊很高兴能帮上忙!如果您觉得我的回答对您有用,请随时接受。:-)再次感谢你的光临。我希望你能再帮我一次,提出另一个与上面相同的帖子请求,但由于某些原因,它不是。我做了上面的所有事情,只是做了一些细微的改动——导入请求、导入urllib、会话=请求.session()、文件={'file':(open('Bishop/newdenovo2.txt','r').read())}、url=''payload={“algo[]”:““svm”}(因为我只需要第一个复选框项'svm'),所以原始和响应与上面的相同。我也可以把它作为一个问题发布!再次感谢你!