Первое, что бросается в глаза при сканировании приведенного выше кода, это PATH для IMAGES_STORE
. /
означает, что вы идете по абсолютному корневому пути вашей машины, поэтому вы либо указываете абсолютный путь к тому месту, куда хотите сохранить, либо просто делаете относительный путь от того места, где вы запускаете свой сканер
Я на машине с Linux, поэтому мой абсолютный путь будет примерно таким: IMAGES_STORE = /home/pk/myProjects/scraper/images
ИЛИ
IMAGES_STORE = 'images'
Кроме того, наиболее важно, если вы используете конвейер по умолчанию, переменная, которая содержит извлеченное изображение (где вы делаете extract_first()
), должна буквально быть image_urls
.
Вы также пропустили пару шагов. В своем пауке добавьте:
class ImgData(Item):
image_urls=scrapy.Field()
images=scrapy.Field()
На шаге yield
измените на:
yield ImgData(image_urls=response.urljoin(q.css("::attr(src)").extract_first()))