Ich versuche, eine Webseite zu schaben senden POST zu füllen ein Formular, in der Regel verwende ich Selen, um eine Seite mit Python zu kratzen, aber ich habe kürzlich gelesen, dass das Senden einer POST-Anfrage ist eine bessere Weg, um Ergebnisse zu kratzen. Wie auch immer, ich befolgte einige Anweisungen für meinen Code, aber wenn ich meine Daten poste, bekomme ich die gleiche Seite mit dem Formular ausgefüllt (der POST reicht das Formular nicht ein), was mache ich falsch? Auch die selbe Seite hat eine andere Form nach der ersten zu füllen, also wenn ich die erste Form erfülle, weiß ich wirklich nicht, wie ich diese Antwort halten soll, um die endgültige Antwort zu bekommen, also wenn jemand mit einigen Ideen helfen kann, würde ich es tun bin dankbar! Dank und ich schließe meinen Code und die Seite, die ich für schaben die endgültige Angebot suchen:Python: Senden POST Anfrage funktioniert nicht
https://www.santander.cl/cotizador-web/
import requests, lxml.html
import time
s = requests.session()
login = s.get('https://www.santander.cl/cotizador-web/cotizador/pasosSolicitud.xhtml')
login_html = lxml.html.fromstring(login.text)
hidden_inputs = login_html.xpath(r'//form//input[@type="hidden"]')
form = {x.attrib["name"]: x.attrib["value"] for x in hidden_inputs}
form['pasosForm:marcas']='27'
form['pasosForm:modelos']='1978'
form['pasosForm:ano']='2015'
form['pasosForm:uso']='1'
form['pasosForm:j_id93373712_1a32e354_input']='on'
form['formDialogCotiSelec:j_id216370348_64c01a10_active'] = '1'
form['javax.faces.partial.execute']='pasosForm pasosForm:siguiente1'
response = s.post('https://www.santander.cl/cotizador-web/cotizador/pasosSolicitud.xhtml', data=form)
print(response.text)
Dank! Ich korrigiere diesen Teil und mein Programm füllt das Formular (die Werte sind wie markiert "im HTML-Code ausgewählt), aber immer noch nicht die nächste Seite des Formulars, ist wie das Programm nicht das Formular einreichen ... Sie habe eine Idee? Danke! –