问题
我试图使用请求的python 在页面中创建一个,但是我得到了错误(比如不允许的坏请求或方法)。
HTML代码
<form enctype="multipart/form-data" action="/page1" method="GET"> ... </form>
...
<form enctype="multipart/form-data" action="/page2" method="POST">
<input type="file" name="smiles_file">
<input type="text" name="smiles_str">
...
<button name="pred_type" type="submit" value="adme"> BT1 </button>
<button name="pred_type" type="submit" value="toxicity"> BT2 </button>
</form>Python3代码
#imports
import requests
from bs4 import BeautifulSoup as bs
#commmon vars
url = 'www.exampleurl.com/site'
hd = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36"
}
dt = {
'smiles_str': 'CC(=O)OC1=CC=CC=C1C(=O)O',
'pred_type': 'adme'
}
#scraping
with requests.Session() as rs:
result = rs.get(url, data=dt, headers=hd)
print ("Code: %s\nHTML\n%s" % (result.status_code, result.text))编辑
使用get: status_code: 405 (方法…)使用post: status_code: 400 (不良请求)
发布于 2018-11-18 14:58:18
在您的示例中,我没有看到对/page1或/page2的引用,但是rs.get可能使用的是命名参数params而不是data,应该对应于第一个表单URL,而对于第二个表单URL,您需要使用rs.post方法,在那里使用数据是可以的。
发布于 2019-03-20 00:13:08
我想我找到了答案。似乎selenium在使用js背景的页面上不能很好地工作。我在用硒,我对它没有问题。
https://stackoverflow.com/questions/53362153
复制相似问题