Я пытаюсь удалить строки type = "hidden" из html кода, который я вытащил через python. причина этого в том, что я извлекаю данные тега формы из кода html, чтобы создать словарь, например: {"username": "", "password": "", "Login": "submit"}, однако, потому что beautifulsoup извлекает все, что есть в строках type = "hidden", а мой словарь выглядит довольно нелепо и, очевидно, совершенно непригодным для использования. вот код:
#!/usr/bin/env python
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin, urlparse
import re
target_url = "https://example.com"
def request(url):
try:
return requests.get(url)
except requests.exceptions.ConnectionError:
pass
response = request(target_url)
parsed_html = BeautifulSoup(response.content, 'html.parser')
forms_list = parsed_html.find("form")
for hidden in forms_list.body.findAll(re.findall('(?:<input ")(.*?)>')):
hidden.decompose()
for form in modified_form:
action = form.get("action")
post_url = urljoin(target_url, action)
method = form.get("method")
inputs_list = form.findAll("input")
post_data = {}
for input in inputs_list:
input_name = input.get("name")
input_type = input.get("type")
input_value = input.get("value")
post_data[input_name] = input_type
result = requests.post(post_url, data=post_data)
print(post_data)
Я получаю это сообщение об ошибке: Traceback (последний вызов последним): файл «form.py», строка 21, для скрытого в forms_list.body.findAll (re. найти все('(?: ')): AttributeError: объект' NoneType 'не имеет атрибута' body '
Я новичок в этом, поэтому извиняюсь, если мой код ужасен. как мне удалить только строки type = "hidden" из кода html, проанализированного с помощью beautifulsoup?