У 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 — це публічний вхід конструктора сеансу. Словник proxies у Requests не заповнює ці аргументи Chromium.

Запис socks5h:// із Requests також не можна просто скопіювати в Chromium. Chromium приймає socks5://, розв'язує імена призначення SOCKS5 через проксі й не підтримує автентифікацію SOCKS5 за іменем користувача та паролем.

render(reload=False) передає наявний HTML браузеру замість переходу на URL сторінки. Скрипти й підресурси все ще можуть надсилати запити. Це корисно, коли таку відповідь треба навмисно відрендерити, але не робить з'єднання Requests транспортом браузера.

Схожі статті