Requests-HTML 0.10.0: konfiguracja proxy Chromium dla render()
Skonfiguruj argumenty uruchamiania Chromium oraz Requests, gdy stara strona Requests-HTML działa przed render() i zawodzi po nim.
W Requests-HTML 0.10.0 session.get() używa Requests, natomiast response.html.render() uruchamia Pyppeteer i zwykle ponownie nawiguje Chromium do adresu URL strony. Udana pierwsza odpowiedź nie ustala trasy przeglądarki.
Dla istniejącego zgodnego starego środowiska z proxy HTTP bez uwierzytelniania:
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()
W przykładzie strony publicznej lista proxy HTTP dostarcza kandydatów dla proxy_url. browser_args to publiczne wejście konstruktora sesji. Słownik proxies w Requests nie wypełnia tych argumentów Chromium.
Zapisu socks5h:// z Requests również nie można po prostu skopiować do Chromium. Chromium akceptuje socks5://, rozwiązuje nazwy miejsc docelowych SOCKS5 przez proxy i nie obsługuje uwierzytelniania SOCKS5 nazwą użytkownika i hasłem.
render(reload=False) przekazuje istniejący HTML przeglądarce zamiast nawigować do adresu URL strony. Skrypty i podzasoby nadal mogą wysyłać żądania. Jest to przydatne, gdy ta odpowiedź ma być świadomie wyrenderowana, ale nie czyni połączenia Requests transportem przeglądarki.