Python 使用BeatifulSoup启用复选框
我有一个表单,它有一个复选框和一个提交按钮,看起来像:Python 使用BeatifulSoup启用复选框,python,html,beautifulsoup,Python,Html,Beautifulsoup,我有一个表单,它有一个复选框和一个提交按钮,看起来像: <form name="create" id="FormCreate" action="/create/0" method="post"> <div id="condition_D"> <input type="checkbox" name="condition" title="check me." class="condition" id="condition"> <
<form name="create" id="FormCreate" action="/create/0" method="post">
<div id="condition_D">
<input type="checkbox" name="condition" title="check me." class="condition" id="condition">
<label for="condition">You should validate</label>
</div>
<div id="submit_D">
<input type="submit" name="validateButton" value="make a validation" title="Some title">
<input type="submit" name="cancelButton" value="Cancel" title="Some title">
</div>
</form>
import requests
from bs4 import BeautifulSoup
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
}
data = {
"condition['value']": "on",
"form_id": "FormCreate",
"op": "validateButton"
}
with requests.Session() as s:
url = "http://www.website.com/create/0"
r = s.get(url, headers=header)
soup = BeautifulSoup(r.content, 'html.parser')
response = requests.post(url, data=data, headers=header)
print(response.url)
这将返回相同的url和相同的资源:
http://www.website.com/create/0
但它应该把我重定向到另一个页面
我搜索了很多来打开条件复选框并提出请求,但没有成功。有办法解决这个问题吗
我可以使用以下方法找到复选框:
condition = soup.find('input', attrs={'name': 'condition'})
并将该值设置为“开”或“真”:
condition['value'] = 'on'
但我不知道如何进行操作据我所知,它只是一个解析器,可以更轻松地处理xml或html等数据 如果您想发出请求,可以使用其他库或创建自己的请求。您应该使用chrome中的开发者工具来实际查看请求以及发送到服务器的参数
重定向很容易解释为服务器只返回带有新url的状态码。浏览器(或脚本)负责执行必要的步骤。据我所知,beautifulsoup只是一个解析器,它使处理xml或html等数据更容易 如果您想发出请求,可以使用其他库或创建自己的请求。您应该使用chrome中的开发者工具来实际查看请求以及发送到服务器的参数 重定向很容易解释为服务器只返回带有新url的状态码。浏览器(或脚本)负责执行必要的步骤