scrapy imagepipline: создан простой пример, что такое команда для запуска / тестирования - PullRequest
0 голосов
/ 20 февраля 2012

Я следую этой документации, чтобы загрузить изображения, используя scrapy.http://doc.scrapy.org/en/latest/topics/images.html

В частности, у меня был бы этот test.py:

from scrapy.contrib.pipeline.images import ImagesPipeline
from scrapy.exceptions import DropItem
from scrapy.http import Request

from My.items import ImageItem

item = ImageItem()
item['image_urls'] = ['http://url/123.jpg']

class MySpider(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

Мой вопрос: что такое командная строка, которую я должен запустить, чтобы проверить этот test.py, чтобы проверить, являются ли изображенияскачал.

Дополнительная информация: Мне известна команда "имя_проекта scrapy crawl", но я предпочитаю тестировать этот test.py без необходимости создания проекта.

Также встречайте "scrapy runspider test.py"Но это не работает.Ошибка: MySpider не найден.

1 Ответ

1 голос
/ 21 февраля 2012

Я предлагаю вам следовать учебнику , потому что в вашем скрипте отсутствуют некоторые важные вещи, например. обратный вызов для вашей функции Request (). Учебное пособие довольно просто выполнить за 15 минут и охватит некоторые аспекты, которые вы в настоящее время упускаете.

Для работы конвейеров и промежуточного программного обеспечения вам понадобится полный движок Scrapy. Я рекомендую проверить Обзор архитектуры , чтобы понять, как работает весь движок.

...