>>1547import requests
from bs4 import BeautifulSoup
import time
# url del filo
url = "
https://vecchiochan.com/t/res/1533.html"
# headers della richiesta
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0',
'Accept': '*/*',
'Accept-Language': 'it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3'
}
s = requests.Session()
# ottengo la risposta dal server
h_response = s.get(url, headers=headers)
# ne prelevo il file HTML
data = h_response.text
# analizzo l'HTML
soup = BeautifulSoup(data, 'html.parser')
# ottengo tutti il form che mi consente di postare
form = soup.find("form", attrs={"name": "post"})
# trovo tutti gli input interni al form compresi quelli nascosti
inputs = form.find_all("input")
files = {
}
# per ogni elemento input
for e in inputs:
# inizializzo il valore vuoto
value = ""
# se l'elelemnto ha l'attributo value
if e.has_attr("value"):
files[e["name"]] = (None, e["value"])
# trovo anche tutte le textarea interne al form
ta = form.find_all("textarea")
# per ogni textarea trovata
for tas in ta:
# salvo il nome della textarea e il suo contenuto
if tas["name"] == "body":
# qui inserisco il corpo del post
files[tas["name"]] = (None, "Ciao da Python! Odio i negri, viva il papa!")
else:
files[tas["name"]] = (None, tas["value"])
# aggiungo chiave mancante
files["json_response"]=(None, "1")
print(files)
#inoltro la richiesta
request = requests.Request('POST', "
https://vecchiochan.com/post.php", files=files, headers=headers).prepare()
print(request.body.decode('utf8'))
time.sleep(5)
response = s.send(request)
print(response.headers)
print(response.status_code)
print(response.text)