Requests-HTML 0.10.0: Den Chromium-Proxy für render() konfigurieren
Konfigurieren Sie die Chromium-Startargumente und Requests, wenn eine alte Requests-HTML-Seite vor render() erfolgreich ist und danach fehlschlägt.
In Requests-HTML 0.10.0 verwendet session.get() Requests, während response.html.render() Pyppeteer startet und Chromium normalerweise erneut zur Seiten-URL navigiert. Eine erfolgreiche erste Antwort legt die Route des Browsers nicht fest.
Für eine bestehende kompatible Altumgebung mit einem nicht authentifizierten HTTP-Proxy:
from requests_html import HTMLSession
proxy_url = 'http://proxy.example:8080'
session = HTMLSession(browser_args=[
'--proxy-server=' + proxy_url,
])
try:
response = session.get(
'https://www.example.org/',
proxies={'https': proxy_url},
timeout=20,
)
response.html.render(timeout=20)
rendered = response.html.html
finally:
session.close()
Im Beispiel der öffentlichen Seite liefert die HTTP-Proxy-Liste Kandidaten für proxy_url. browser_args ist die öffentliche Konstruktoreingabe der Sitzung. Ein Requests-Wörterbuch proxies füllt diese Chromium-Argumente nicht.
Auch die Schreibweise socks5h:// von Requests lässt sich nicht einfach in Chromium übernehmen. Chromium akzeptiert socks5://, löst SOCKS5-Zielnamen über den Proxy auf und unterstützt keine SOCKS5-Authentifizierung mit Benutzername und Passwort.
render(reload=False) übergibt das vorhandene HTML an den Browser, statt zur Seiten-URL zu navigieren. Skripte und Unterressourcen können weiterhin Anfragen stellen. Es ist nützlich, wenn diese Antwort bewusst gerendert werden soll, macht aber die Requests-Verbindung nicht zum Transport des Browsers.