Nýt eina proxy-IP í Python Requests
Áset proxy-leiðir fyri hvørja umbøn í Requests, vel rætta scheme fyri endapunktið og handfar tíðaravmarkingar og brek í HTTPS-tunlum.
Tá Requests er tøkt í verkætlanini, send eina proxy-mapping við kallinum:
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)
Skift loopback-endapunktið út við tín virkna proxy ella eitt evni av listanum við HTTP-proxyum, sum tú fert at royna við hesi umbønini. Lyklarnir lýsa scheme hjá málinum: http fyri HTTP-URL og https fyri HTTPS-URL. Virðini lýsa proxy-lurtaran. Tey kunnu vera ymisk endapunkt, um netið krevur atskildar leiðir.
Tað er við vilja, at proxy-virðið http:// stendur undir lyklinum https. Requests biður HTTP-lurtaran um ein CONNECT-tunil og stovnar síðan TLS til málið ígjøgnum hann, treytað av reglum proxysins fyri mál og portur. Verður virðið broytt til https://, verður biðið um TLS til sjálvan proxyn; tað kann miseydnast, um lurtarin væntar HTTP í klárteksti.
Hvat tey bæði tølini fyri tíðaravmarking merkja
timeout=(5, 15) setur tíðaravmarkingar fyri sambinding og lesing. Tað setur ikki eitt samlað mark á fimtan sekund. Dátur, sum koma við millumbilum, fleiri adressur og sambindingarroyndir kunnu leingja samlaðu tíðina. Requests gevur onga almenna tíðaravmarking, um stillingin verður slept. Vel tí mørk, sum hóska til svarið, og legg eina endaliga tíðarfreist á forritsstigi afturat, um arbeiðið krevur eitt strangt samlað tíðarmark.
Handfar brekið á tí stigi, har tað hendir
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)
Ein noktaður CONNECT kann elva til ProxyError, áðrenn nakað svar frá málinum er til. Greinin við HTTPError kemur eftir eitt móttikið svar við feilstatusi; Timeout merkir, at eitt ásett mark er farið. Kanna undantaksketur frá uppsetingini lokalt, og strika endapunkt við innritingarupplýsingum og privatar URL, áðrenn tú deilir tær.
Lat váttanarváttan vera virkna. Um loyvda netið nýtir eitt privat CA ella stýrda avskering, lat so tað væntaða tilfar til álit fylgja við heldur enn at sløkkja váttanina.
Neyvt ásettar posteringar fyri hvørja umbøn stýra leiðunum, sum eru givnar her, men scheme, ið ikki eru nevnd, kunnu framvegis verða ávirkað av proxy-leiting í umhvørvinum. Tá kallið verður flutt í eina endurnýtiliga Session, avger hvussu umhvørvisvariablar, standardvirði í Session og serligar yvirstýringar fyri hvørja umbøn skulu virka saman; endurnýtsla av sambindingum og leiðarpolitikkur eru hvør sítt val.