Requests-HTML 0.10.0:ssa session.get() käyttää Requests-kirjastoa, kun taas response.html.render() käynnistää Pyppeteerin ja ohjaa Chromiumin yleensä uudelleen sivun URL-osoitteeseen. Onnistunut ensimmäinen vastaus ei vahvista selaimen reittiä.

Olemassa olevalle yhteensopivalle vanhalle ympäristölle, joka käyttää autenttimatonta HTTP-välityspalvelinta:

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()

Julkisen sivun esimerkissä HTTP-välityspalvelinluettelo tarjoaa ehdokkaita proxy_url-arvoksi. browser_args on istunnon julkinen konstruktorisyöte. Requestsin proxies-sanakirja ei täytä näitä Chromium-argumentteja.

Myöskään Requestsin kirjoitusasua socks5h:// ei voi kopioida sellaisenaan Chromiumiin. Chromium hyväksyy muodon socks5://, selvittää SOCKS5-kohdenimien osoitteet välityspalvelimen kautta eikä tue SOCKS5-käyttäjätunnus- ja salasanatodennusta.

render(reload=False) välittää olemassa olevan HTML:n selaimelle sen sijaan, että siirtyisi sivun URL-osoitteeseen. Skriptit ja aliresurssit voivat silti tehdä pyyntöjä. Siitä on hyötyä, kun kyseinen vastaus halutaan tarkoituksella renderöidä, mutta se ei tee Requests-yhteydestä selaimen siirtotietä.

Aiheeseen liittyvät artikkelit