Requests болон iter_content ашиглан проксигоор татах
Requests хариугаа алхам алхмаар хэрэглэж, ердийн төлөв шалгалт, цэвэрлэгээ болон хэсэгчилсэн гаралтын зориудын бодлогыг хадгална уу.
with session.get(url, stream=True, proxies=routes,
timeout=(5, 30)) as response:
response.raise_for_status()
with open(part_path, 'wb') as output:
for chunk in response.iter_content(chunk_size=64 * 1024):
if chunk:
output.write(chunk)
Энэ загварыг програмын одоо байгаа Requests сесс, прокси маршрут, URL болон түр гаралтын замтай хамт ашиглана уу. Нийтийн HTTP маршрутын хувьд HTTP прокси жагсаалт таны прокси зураглалд нэр дэвшигч хаягуудыг өгдөг. Урсгалын загвар нь response.content авч дараа нь бүрэн хэмжээтэй хоёр дахь объект бичихийн оронд биеийг алхам алхмаар хэрэглэдэг.
Татах бүх хугацаанд энэ шинж чанарыг хадгал: stream=True биеийг хойшлуулдаг ч дараа нь response.content руу хандах нь бүгдийг санах ойд цуглуулж болзошгүй. iter_content-ийн хэсгийн хэмжээ нь унших сонголт бөгөөд вэбсайт эсвэл прокси дээрх HTTP хэсэгчилсэн дамжуулалтын кодчилолын хүсэлт биш.
Хариултын контекст менежер нь бичих нь бүтэлгүйтсэн эсвэл програм эрт зогссон ч хариултыг хаадаг. Жишээ таймаутын хос нь бүх дамжуулалтын бодит хугацааны эцсийн хугацаа биш; шаардлагатай бол татах үйл ажиллагааны насны бодлогыг тусад нь тохируулна уу.
Амжилттай хэрэглэсний дараа эцсийн нэрийг нийтлэхийн өмнө програмд хүлээгдэж буй артефактыг шалгана уу. Тасалдсан үед хэсэгчилсэн файлыг зөвхөн зориудын үргэлжлүүлэх бодлогын дагуу хадгалж, алсын дүрслэлийг тодорхойлох мета өгөгдөлтэй байлгана. Хоосон бус түр файл нь амжилттай татах биш юм.