Requests-HTML 0.10.0: render() 用の Chromium プロキシを設定する
古い Requests-HTML のページが render() の前は成功し、後で失敗する場合に、Chromium の起動引数と Requests の両方を設定します。
Requests-HTML 0.10.0 では、session.get() は Requests を使い、response.html.render() は Pyppeteer を起動して通常は Chromium をページの URL へ再度移動します。最初の応答が成功してもブラウザの経路は確立されません。
認証のない HTTP プロキシを使う既存の互換なレガシー環境の場合:
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()
公開ページの例では、HTTP プロキシ一覧が proxy_url の候補を提供します。browser_args はセッションの公開コンストラクタ入力です。Requests の proxies 辞書はそれらの Chromium 引数を埋めません。
Requests の socks5h:// という表記もそのまま Chromium にコピーできるわけではありません。Chromium は socks5:// を受け付け、SOCKS5 の宛先名をプロキシ経由で解決し、SOCKS5 のユーザー名とパスワードによる認証はサポートしません。
render(reload=False) はページの URL へ移動する代わりに既存の HTML をブラウザに渡します。スクリプトやサブリソースは引き続きリクエストを送れます。その応答を意図的に描画したい場合に有用ですが、Requests の接続をブラウザの通信経路に変えるものではありません。