Lidhni proxy-n me kërkesat e imazheve të Scrapy
Zbukuroni Requests që krijon ImagesPipeline që shkarkimet e imazheve të marrin një proxy pa rindërtuar logjikën e kërkesave të pipeline-it.
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
Për Scrapy 2.13.3, zëvendësoni hyrjen standarde të ImagesPipeline në ITEM_PIPELINES me shtegun e importit të kësaj nënklase. Mbani IMAGES_STORE dhe cilësimet e tjera.
Thirrja e prindit ruan fushën e konfiguruar të URL-së së imazhit dhe kthimet e thirrjes. Nënklasa shton vetëm shtegun e kërkesës, të cilin e konsumon HttpProxyMiddleware i aktivizuar. Çdo URL imazhi mbetet destinacioni i tij. Kërkesat e reja për imazhe publike pa kredenciale proxy mund të përdorin një hyrje nga lista e proxy-ve HTTP kur ai shteg lejohet.
Kërkesat e faqes mbajnë politikën e tyre. Me një mjedis global proxy, meta={'proxy': None} e bën të drejtpërdrejtë një kërkesë faqeje të zgjedhur në këtë version.
Verifikoni që një shkarkim është lëshuar vërtet. Një goditje e cache-së së pipeline-it mund të shmangë një kërkesë rrjeti. Për transferta të reja, krahasoni hyrjet e rezultatit të imazheve të përfunduara me URL-të e kërkuara: operacionet e suksesshme shfaqen atje, ndërsa dështimet mund ta lënë fushën origjinale të URL-së së imazhit të plotësuar. Gjurmoni rezultatet që mungojnë përmes regjistrave të shkarkuesit dhe proxy-t të zgjedhur.