ב-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 לתעבורה של הדפדפן.

מאמרים קשורים