@Cenzor

Как скачать изображение с помощью фреймворка Scrapy?

Не получается скачать изображение с помощью фреймворка Scrapy.
settings.py:
ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline': 1}
IMAGE_STORE = '/home/user/project/images'

items.py:
...
class SampleItem(scrapy.Item):
...
    images = Field()
    image_urls = Field()

spiders/basic.py:
from project.import SampleItem
...
f = ItemLoader(item=SampleItem(), response=response)
f.add_xpath('image_urls', '//meta[@property="og:image"]/@content')

Проверяю в scrapy shell зачение response.xpath('//meta[@property="og:image"]/@content') - ссылка. При запуске вот такая ошибка появляется:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 651, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/home/user/project/project/spiders/basic.py", line 110, in parse_item
    f.add_xpath('image_urls', '//meta[@property="og:image"]/@content')
  File "/usr/lib/python2.7/dist-packages/scrapy/loader/__init__.py", line 135, in add_xpath
    self.add_value(field_name, values, *processors, **kw)
TypeError: 'tuple' object is not callable

Кто сталкивался с подобной проблемой, как её решить? Заранее благодарен всем откликнувшимся.
  • Вопрос задан
  • 406 просмотров
Решения вопроса 1
aRegius
@aRegius
Python Enthusiast
Строки 113, 114 ... Полагаю, проблема в наличии оператора присваивания.
f.add_value = ('contr', contr)
f.add_value = ('cooking', cooking)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы