【发布时间】:2018-11-18 14:51:06
【问题描述】:
问题
我正在尝试使用 request 的 python 库在页面中进行 scraping,但是我遇到了错误(例如 错误的请求或不允许的方法)。
该页面有两种形式:一种带有 get,另一种带有 post(我希望如此)。我确实使用“数据请求”将值传递给文本字段。
我不想为表单传递图像,只是一个文本字段。
表单中有六个按钮,每个按钮都有不同的值。
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))
编辑
使用获取: status_code:405(方法...) 使用帖子: status_code: 400(错误请求)
【问题讨论】:
-
rs.get?应该是 rs.post
标签: python python-3.x web-scraping python-requests multiple-forms