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 транспартам браўзера.