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

Падобныя артыкулы