ניצן אַ פּראָקסי־IP אין Python Requests
שטעלט בפֿירוש פּראָקסי־וועגן פֿאַר יעדער בקשה אין Requests, קלײַבט די ריכטיקע ענדפּונקט־סכעמע און באַהאַנדלט צײַטגרענעצן און HTTPS־טונעלפֿעלערן.
ווען Requests איז פֿאַראַן אין אײַער פּראָיעקט, גיט אַ פּראָקסי־מאַפּירונג צום רוף:
import requests
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = requests.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
print(response.status_code)
בײַט דעם loopback־ענדפּונקט מיט אײַער לויפֿנדיקן פּראָקסי אָדער אַ קאַנדידאַט פֿון דער ליסטע פֿון HTTP־פּראָקסיס וואָס איר וועט פּרוּוון מיט דער בקשה. די שליסלען באַשרײַבן די צילסכעמעס: http פֿאַר HTTP־URLס און https פֿאַר HTTPS־URLס. די ווערטן באַשרײַבן דעם פּראָקסי־צוהערער. זיי קענען זײַן אַנדערע ענדפּונקטן אויב דאָס נעץ דאַרף באַזונדערע וועגן.
אַ פּראָקסי־ווערט http:// אונטערן שליסל https איז בכּיוון. Requests בעט דעם HTTP־צוהערער פֿאַר אַ CONNECT־טונעל און שטעלט דערנאָך אויף TLS צום ציל דורכדעם, לויט דער ציל־ און פּאָרטפּאָליטיק פֿונעם פּראָקסי. בײַטן דעם ווערט אויף https:// בעט TLS צום פּראָקסי אַליין; עס קען דורכפֿאַלן אויב דער צוהערער דערוואַרט אומפֿאַרשליסלטן HTTP.
וואָס מיינען די צוויי צײַטגרענעץ־צאָלן
timeout=(5, 15) שטעלט צײַטגרענעצן פֿאַרן פֿאַרבינדן און לייענען. עס לייגט נישט אַרויף אַ גאַנצן טערמין פֿון פֿופֿצן סעקונדעס. פּעריאָדיש אָנקומענדיקע דאַטן, עטלעכע אַדרעסן און פֿאַרבינדונגספּרוּוון קענען פֿאַרלענגערן די פֿאַרגאַנגענע צײַט. Requests גיט נישט קיין אַלגעמיינע צײַטגרענעץ אויב איר לאָזט אויס די אײַנשטעלונג. קלײַבט גרענעצן פּאַסיק צום ענטפֿער און לייגט צו אַן אַפּליקאַציע־טערמין אויב די אַרבעט דאַרף אַ שטרענגן גאַנצן צײַטבודזשעט.
באַהאַנדלט דעם דורכפֿאַל בײַם שריט וווּ ער טרעפֿט זיך
try:
response = requests.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
except requests.exceptions.ProxyError as error:
print("Proxy setup failed:", type(error).__name__)
except requests.exceptions.Timeout:
print("A configured timeout expired")
except requests.exceptions.HTTPError as error:
print("HTTP status:", error.response.status_code)
אַן אָפּגעזאָגטער CONNECT קען אַרויסרופֿן ProxyError איידער אַן ענטפֿער פֿונעם ציל עקזיסטירט. דער HTTPError־צווייג קומט נאָכן באַקומען אַן ענטפֿער מיט פֿעלערסטאַטוס; Timeout מיינט אַז אַ באַשטימטע גרענעץ איז אויסגעלאָפֿן. קוקט לאָקאַל איבער די אויסנאַם־קייטן פֿונעם פֿאַרבינדונגסאויפֿשטעל, און נעמט אַרויס ענדפּונקטן מיט צוטריטסדאַטן און פּריוואַטע URLס איידער איר טיילט זיי.
לאָזט דעם סערטיפֿיקאַט־קאָנטראָל אָנגעשאַלטן. אויב דאָס דערלויבטע נעץ ניצט אַ פּריוואַטע CA אָדער אַ געפֿירטע אינטערסעפּציע, גיט דאָס דערוואַרטע צוטרוי־מאַטעריאַל אַנשטאָט אויסצושאַלטן דעם קאָנטראָל.
בפֿירושע אײַנטראָגן פֿאַר יעדער בקשה קאָנטראָלירן די דאָ געגעבענע וועגן, אָבער אויסגעלאָזטע סכעמעס קענען נאָך זײַן באַווירקט פֿון פּראָקסי־אַנטדעקונג אין דער סבֿיבֿה. בײַם אַריבערפֿירן דעם רוף אין אַ ווידערניצלעכער Session באַשליסט, ווי סבֿיבֿה־וואַריאַבלען, Session־פֿעליקייטן און איבערשרײַבונגען פֿאַר יעדער בקשה זאָלן צוזאַמען אַרבעטן; פֿאַרבינדונגסווידערנוץ און רוטירונגספּאָליטיק זענען באַזונדערע ברירות.