So proxy pọ mọ àwọn ìbéèrè àwòrán Scrapy
Ṣe àwọn Requests tí ImagesPipeline ń dá lọ́ṣọ̀ọ́ kí àwọn ìgbàsílẹ̀ àwòrán lè gba proxy láìtún kọ́ ìmòye ìbéèrè pipeline náà.
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
Fún Scrapy 2.13.3, rọ́pò àkọsílẹ̀ ImagesPipeline àṣà ní ITEM_PIPELINES pẹ̀lú ọ̀nà import ti subclass yìí. Pa IMAGES_STORE àti àwọn ètò mìíràn mọ́.
Pípè àgbà ń pa ààyè URL àwòrán àti àwọn callback tí ó ti ṣètò mọ́. Subclass ń fi ọ̀nà ìbéèrè nìkan kún un, èyí tí HttpProxyMiddleware tí ó ṣiṣẹ́ ń lò. Gbogbo URL àwòrán ṣì jẹ́ ibi tí ó ń lọ. Àwọn ìbéèrè àwòrán gbogbogbò tuntun tí kò ní ẹ̀rí proxy lè lo àkọsílẹ̀ kan láti àkójọ proxy HTTP nígbà tí a bá gba ọ̀nà yẹn láàyè.
Àwọn ìbéèrè ojú-ìwé ń pa ìlànà tiwọn mọ́. Pẹ̀lú àyíká proxy àgbáyé, meta={'proxy': None} ń jẹ́ kí ìbéèrè ojú-ìwé tí a yàn di tààrà nínú ìtẹ̀jáde yìí.
Ṣàyẹ̀wò pé ìgbàsílẹ̀ kan ti jáde ní tòótọ́. Ìkọlu cache pipeline lè yẹra fún ìbéèrè nẹ́tíwọ́kì. Fún àwọn ìgbékalẹ̀ tuntun, fi àwọn àkọsílẹ̀ èsì àwòrán tí ó ti parí wé pẹ̀lú àwọn URL tí a béèrè: àwọn iṣẹ́ tí ó ṣàṣeyọrí ń farahàn níbẹ̀, nígbà tí àwọn ìkùnà lè fi ààyè URL àwòrán ìpilẹ̀ṣẹ̀ kún. Tẹ̀lé àwọn èsì tí ó sọnù nípasẹ̀ àwọn àkọsílẹ̀ ẹ̀rọ ìgbàsílẹ̀ àti proxy tí a yàn.