Requests-HTML 0.10.0: налаштування проксі Chromium для render()
Налаштуйте аргументи запуску Chromium і Requests, коли стара сторінка Requests-HTML успішно працює до render() і зазнає збою після нього.
У 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 транспортом браузера.