Requests-HTML 0.10.0: configurar el proxy de Chromium para render()
Configura los argumentos de inicio de Chromium y también Requests cuando una página antigua de Requests-HTML funciona antes de render() y falla después.
En Requests-HTML 0.10.0, session.get() usa Requests, mientras que response.html.render() inicia Pyppeteer y normalmente vuelve a navegar con Chromium a la URL de la página. Una primera respuesta correcta no establece la ruta del navegador.
Para un entorno antiguo compatible existente con un proxy HTTP sin autenticación:
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()
En el ejemplo de página pública, la lista de proxies HTTP ofrece candidatos para proxy_url. browser_args es la entrada pública del constructor de la sesión. Un diccionario proxies de Requests no rellena esos argumentos de Chromium.
La forma socks5h:// de Requests tampoco puede copiarse sin más en Chromium. Chromium acepta socks5://, resuelve los nombres de destino SOCKS5 a través del proxy y no admite autenticación SOCKS5 con usuario y contraseña.
render(reload=False) entrega el HTML existente al navegador en lugar de navegar a la URL de la página. Los scripts y subrecursos todavía pueden hacer peticiones. Resulta útil cuando se renderiza esa respuesta a propósito, pero no convierte la conexión de Requests en el transporte del navegador.