Если вы знаете, какое действие отправляет форма, вы можете сделать это, отправив сообщение в сочетании с Beautiful Soup .
Строка: <input type="hidden" name="formid" value="32bbba790d2a75a5dafec2ec6c3bbc19" />
важна, так какэтот хэш, скорее всего, был сгенерирован при обслуживании страницы.Это сделано для борьбы с DDoS, например, кто-то спамит запросы к форме действий.Таким образом, чтобы веб-сервер принял ваш запрос, вам нужно будет проверить это значение и передать его вместе с запросом POST.
Вы можете сделать что-то вроде этого:
import requests
from bs4 import BeautifulSoup
url = "http://some-url/" # replace with target URL
r = requests.get(url)
if r.status_code == 200:
bs = BeautifulSoup(r.text)
form = bs.findAll("form", {"class": "addf"})[0] # find the form
inputs = form.findAll("input") # find the input-fields
hash = None
for input in inputs:
if input.get("name") == "formid": # find the hash
hash = input.get("value")
if hash:
action = "createusername" # replace with target action
res = requests.post(url + action, data={
# ... other parameters, if any
"formid" : hash
})
print(res)
Выможет понадобиться уточнить, как Beautiful Soup выполняет поиск в HTML, например, если несколько элементов имеют class="addf"
.