Create a gist now

Instantly share code, notes, and snippets.

@nahali /pipelines.py
Last active Dec 22, 2015

What would you like to do?
from scrapy.contrib.pipeline.images import ImagesPipeline
from scrapy.exceptions import DropItem
from scrapy.http import Request
class MyImagesPipeline(ImagesPipeline):
def get_media_requests(self, item, info):
for image_url in item['image_urls']:
yield Request(image_url)
def item_completed(self, results, item, info):
image_paths = [x['path'] for ok, x in results if ok]
if not image_paths:
raise DropItem("Item contains no images")
item['image_paths'] = image_paths
return item
def process_item(self, item, spider):
if spider.name == 'vinNico3':
print "inside process_item"
#class Projetvinnicolas3Pipeline(object):
# def process_item(self, item, spider):
# return item
@redapple

This comment has been minimized.

Show comment Hide comment
@redapple

redapple Sep 6, 2013

You have to call the superclass' method and return its result
otherwise you are discarding all items

    def process_item(self, item, spider):
        if spider.name == 'vinNico3':
            print "inside process_item"
        return super(MyImagesPipeline, self).process_item(item, spider)

You can also NOT define the method.

redapple commented Sep 6, 2013

You have to call the superclass' method and return its result
otherwise you are discarding all items

    def process_item(self, item, spider):
        if spider.name == 'vinNico3':
            print "inside process_item"
        return super(MyImagesPipeline, self).process_item(item, spider)

You can also NOT define the method.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment