Requests-HTML 0.10.0: configurar o proxy do Chromium para render()
Configure os argumentos de inicialização do Chromium e também o Requests quando uma página antiga de Requests-HTML funciona antes de render() e falha depois.
No Requests-HTML 0.10.0, session.get() usa o Requests, enquanto response.html.render() inicia o Pyppeteer e normalmente navega o Chromium novamente até a URL da página. Uma primeira resposta bem-sucedida não estabelece a rota do navegador.
Para um ambiente legado compatível existente com um proxy HTTP sem autenticação:
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 da página pública, a lista de proxies HTTP fornece candidatos para proxy_url. browser_args é a entrada pública do construtor da sessão. Um dicionário proxies do Requests não preenche esses argumentos do Chromium.
A grafia socks5h:// do Requests também não pode ser simplesmente copiada para o Chromium. O Chromium aceita socks5://, resolve os nomes de destino SOCKS5 pelo proxy e não oferece suporte a autenticação SOCKS5 com usuário e senha.
render(reload=False) entrega o HTML existente ao navegador em vez de navegar até a URL da página. Scripts e sub-recursos ainda podem fazer requisições. É útil quando se deseja renderizar deliberadamente essa resposta, mas não transforma a conexão do Requests no transporte do navegador.