Կցել վստահված սերվերը Scrapy-ի պատկերի հարցումներին
Զարդարեք ImagesPipeline-ի ստեղծած Requests-երը, որպեսզի պատկերի ներբեռնումները վստահված սերվեր ստանան՝ առանց խողովակաշարի հարցումների տրամաբանությունը վերակառուցելու։
from scrapy.pipelines.images import ImagesPipeline
class ProxiedImagesPipeline(ImagesPipeline):
def get_media_requests(self, item, info):
for request in super().get_media_requests(item, info):
request.meta['proxy'] = 'http://proxy.example:8080'
yield request
Scrapy 2.13.3-ի համար ITEM_PIPELINES-ում գտնվող ստանդարտ ImagesPipeline գրառումը փոխարինեք այս ենթադասի ներմուծման ուղով։ Պահպանեք IMAGES_STORE-ը և այլ կարգավորումներ։
Ծնողին կանչելը պահպանում է նրա կարգավորված պատկերի URL դաշտը և հետադարձ կանչերը։ Ենթադասը ավելացնում է միայն հարցման ուղին, որը օգտագործում է միացված HttpProxyMiddleware-ը։ Յուրաքանչյուր պատկերի URL մնում է իր նպատակակետը։ Առանց վստահված սերվերի հավատարմագրերի նոր հանրային պատկերների հարցումները կարող են օգտագործել գրառում HTTP վստահված սերվերների ցանկից, երբ այդ ուղին թույլատրված է։
Էջի հարցումները պահպանում են իրենց սեփական քաղաքականությունը։ Համաշխարհային վստահված սերվերի միջավայրում meta={'proxy': None}-ը այս թողարկումում ընտրված էջի հարցումը դարձնում է ուղղակի։
Ստուգեք, որ ներբեռնումը իրոք ուղարկվել է։ Խողովակաշարի քեշի հարվածը կարող է խուսափել ցանցային հարցումից։ Նոր փոխանցումների համար համեմատեք ավարտված պատկերի արդյունքի գրառումները պահանջված URL-ների հետ. հաջող գործողությունները հայտնվում են այնտեղ, մինչդեռ ձախողումները կարող են թողնել սկզբնական պատկերի URL դաշտը լցված։ Հետևեք բացակայող արդյունքներին ներբեռնիչի մատյանների և ընտրված վստահված սերվերի միջոցով։