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.

Artículos relacionados