scrapy Image renamen

Django, Flask, Bottle, WSGI, CGI…
Antworten
Ernie1412
User
Beiträge: 161
Registriert: Freitag 10. Januar 2020, 20:38

wie kann man unter scrapy image name ändern ?
hiermit class CustomImageNamePipeline(ImagesPipeline): #I copied this code from the website
das hab ich gefunden:

Code: Alles auswählen

    def get_media_requests(self, item, info):
        for image in item.get('image_urls', []):
            yield scrapy.Request(image["url"], meta={'image_name': image["name"]})

    def file_path(self, request, response=None, info=None):
        return '%s.jpg' % request.meta['image_name']
damit:

Code: Alles auswählen

def file_path(self, request, response=None, info=None, *, item=None):
        return f"{request.meta['image']}.jpg"
umbenennt man die Image Files, allerdings die anderen items sind dann nur alle wie das letzte item.
item['image'] ist der wunsch dateiname, dann hab ich noch folgendes:

Code: Alles auswählen

     url = scrapy.Field()
    name = scrapy.Field() 
    image_urls = scrapy.Field()      
    image = scrapy.Field()
1. warum sind die items alle vom letzten gescrapten item ?
2. wie kriege ich das hin , das die item einträge nicht "verloren" gehen ?
Antworten