Requests-HTML 0.10.0: render() ਲਈ Chromium ਪ੍ਰੌਕਸੀ ਕਨਫ਼ਿਗਰ ਕਰੋ
ਜਦੋਂ ਪੁਰਾਣਾ Requests-HTML ਪੇਜ render() ਤੋਂ ਪਹਿਲਾਂ ਸਫਲ ਹੁੰਦਾ ਹੈ ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਫੇਲ ਹੁੰਦਾ ਹੈ, ਤਾਂ Chromium ਲਾਂਚ ਆਰਗਿਊਮੈਂਟ ਅਤੇ Requests ਦੋਵੇਂ ਕਨਫ਼ਿਗਰ ਕਰੋ।
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 ਸੈਸ਼ਨ ਦਾ ਜਨਤਕ ਕੰਸਟ੍ਰਕਟਰ ਇਨਪੁਟ ਹੈ। Requests ਦਾ proxies ਸ਼ਬਦਕੋਸ਼ ਉਹ Chromium ਆਰਗਿਊਮੈਂਟ ਨਹੀਂ ਭਰਦਾ।
Requests ਦੀ socks5h:// ਲਿਖਤ ਵੀ ਸਿੱਧੀ Chromium ਵਿੱਚ ਕਾਪੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। Chromium socks5:// ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, SOCKS5 ਮੰਜ਼ਿਲ ਦੇ ਨਾਮ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਹੱਲ ਕਰਦਾ ਹੈ, ਅਤੇ SOCKS5 ਵਰਤੋਂਕਾਰ ਨਾਮ/ਪਾਸਵਰਡ ਪ੍ਰਮਾਣਿਕਤਾ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ।
render(reload=False) ਪੇਜ ਦੇ URL 'ਤੇ ਜਾਣ ਦੀ ਬਜਾਏ ਮੌਜੂਦਾ HTML ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਦਿੰਦਾ ਹੈ। ਸਕ੍ਰਿਪਟ ਅਤੇ ਉਪ-ਸਰੋਤ ਅਜੇ ਵੀ ਬੇਨਤੀਆਂ ਕਰ ਸਕਦੇ ਹਨ। ਉਸ ਜਵਾਬ ਨੂੰ ਜਾਣਬੁੱਝ ਕੇ ਰੈਂਡਰ ਕਰਨ ਵੇਲੇ ਇਹ ਲਾਭਦਾਇਕ ਹੈ, ਪਰ ਇਹ Requests ਕਨੈਕਸ਼ਨ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਦੀ ਢੋਆ-ਢੁਆਈ ਨਹੀਂ ਬਣਾਉਂਦਾ।