Requests-HTML 0.10.0: de Chromium-proxy configureren voor render()
Configureer de startargumenten van Chromium en Requests wanneer een oude Requests-HTML-pagina vóór render() slaagt en daarna mislukt.
In Requests-HTML 0.10.0 gebruikt session.get() Requests, terwijl response.html.render() Pyppeteer start en Chromium normaal gesproken opnieuw naar de pagina-URL navigeert. Een geslaagd eerste antwoord legt de route van de browser niet vast.
Voor een bestaande compatibele oude omgeving met een HTTP-proxy zonder authenticatie:
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()
In het voorbeeld van de openbare pagina levert de HTTP-proxylijst kandidaten voor proxy_url. browser_args is de openbare constructorinvoer van de sessie. Een Requests-woordenboek proxies vult die Chromium-argumenten niet.
Ook de notatie socks5h:// van Requests kan niet zomaar naar Chromium worden gekopieerd. Chromium accepteert socks5://, lost SOCKS5-bestemmingsnamen via de proxy op en ondersteunt geen SOCKS5-authenticatie met gebruikersnaam en wachtwoord.
render(reload=False) geeft de bestaande HTML aan de browser in plaats van naar de pagina-URL te navigeren. Scripts en subbronnen kunnen nog steeds verzoeken doen. Het is nuttig wanneer dat antwoord bewust wordt gerenderd, maar het maakt de Requests-verbinding niet het transport van de browser.