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.

Powiązane artykuły