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.

Ähnliche Artikel