Проксиді 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 өрісін толтырылған күйде қалдыруы мүмкін. Жоғалған нәтижелерді жүктеуші журналдары мен таңдалған прокси арқылы бақылаңыз.