Requests-HTML 0.10.0: configurar o proxy de Chromium para render()
Configura os argumentos de inicio de Chromium e tamén Requests cando unha páxina antiga de Requests-HTML funciona antes de render() e falla despois.
En Requests-HTML 0.10.0, session.get() usa Requests, mentres que response.html.render() inicia Pyppeteer e normalmente volve navegar con Chromium á URL da páxina. Unha primeira resposta correcta non establece a ruta do navegador.
Para unha contorna antiga compatible existente cun proxy HTTP sen 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()
No exemplo de páxina pública, a lista de proxies HTTP ofrece candidatos para proxy_url. browser_args é a entrada pública do construtor da sesión. Un dicionario proxies de Requests non enche eses argumentos de Chromium.
A forma socks5h:// de Requests tampouco se pode copiar sen máis en Chromium. Chromium acepta socks5://, resolve os nomes de destino SOCKS5 a través do proxy e non admite autenticación SOCKS5 con usuario e contrasinal.
render(reload=False) entrega o HTML existente ao navegador en lugar de navegar á URL da páxina. Os scripts e subrecursos aínda poden facer peticións. É útil cando se renderiza esa resposta a propósito, pero non converte a conexión de Requests no transporte do navegador.