Python请求:上传一个文件,然后解析重定向中的数据

Python请求:上传一个文件,然后解析重定向中的数据,python,https,python-requests,Python,Https,Python Requests,我正在尝试使用此在线转换器将PDB(蛋白质数据库格式)文件转换为SMILES字符串(表示分子): 当您提交一个PDB文件并按下“translate”按钮时,它会重定向到一个带有微笑字符串的新url。如何使用请求解析重定向url的输出字符串?所有选项都可以保持默认状态。到目前为止,我所尝试的: import requests url='https://cactus.nci.nih.gov/translate/' with open("MTK.pdb", "rb&q

我正在尝试使用此在线转换器将PDB(蛋白质数据库格式)文件转换为SMILES字符串(表示分子):

当您提交一个PDB文件并按下“translate”按钮时,它会重定向到一个带有微笑字符串的新url。如何使用请求解析重定向url的输出字符串?所有选项都可以保持默认状态。到目前为止,我所尝试的:

import requests

url='https://cactus.nci.nih.gov/translate/'

with open("MTK.pdb", "rb") as file:
    pdbfile = {'pdb': file}
    r = requests.post(url, files=pdbfile, allow_redirects=True)
但它一直在给我主页。提前谢谢

可能的副本:


编辑:有问题的pdb文件:(另存为.pdb)

您发布到错误url,并以错误方式发布它

从名为
file
的表单中删除文件,不要忘记在
数据中添加一些额外参数,否则它将收到500

import requests

url = 'https://cactus.nci.nih.gov/cgi-bin/translate.tcl'

with open(r"xxx.pdb", "rb") as file:
    pdbfile = {'file': file}
    data = {
        "smiles":"C12C3C4C1C5C4C3C25",
        "format": "screen",
        "astyle": "kekule",
        "dim":"2D"
    }
    r = requests.post(url, files=pdbfile, data=data)
    print(r.text)
结果:

....
<FONT STYLE="Helvetica, Arial">
<B>CC(C)(O)C1=C(CCC(SCC2(CC2)CC(O)=O)C3=CC(=CC=C3)CCC4=NC5=CC(=CC=C5C=C4)Cl)C=CC=C1</B>
</FONT>
...
。。。。
CC(C)(O)C1=C(CCC(CC2)CC(O)=O)C3=CC(=CC=C3)CCC4=NC5=CC(=CC=C5C=C4)Cl)C=CC=C1
...