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.

Artigos relacionados