Используя Scrapy with Python, я не могу загрузить изображения - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь удалить несколько изображений с веб-сайта. Извините заранее, я не очень экспериментировал с Python, и я впервые пытаюсь использовать scrapy.

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

Я просмотрел несколько учебных пособий и все подобные вопросы, которые смог найти в SO, но, похоже, ничего не получилось.

Мой паук:

from testspider.items import TestspiderItem
import datetime
import scrapy

class PageSpider(scrapy.Spider):

    name = 'page-spider'
    start_urls = ['http://scan-vf.co/one_piece/chapitre-807/1']

    def parse(self, response):
        SET_SELECTOR = '.img-responsive'
        page = 1

        for imgPage in response.css(SET_SELECTOR):
            IMAGE_SELECTOR = 'img ::attr(src)'

            imgURL = imgPage.css(IMAGE_SELECTOR).extract_first()
            title = 'op-807-' + str(page)

            page += 1

            yield TestspiderItem({'title':title, 'image_urls':[imgURL]})

Мои товары:

import scrapy

class TestspiderItem(scrapy.Item):

    title = scrapy.Field()
    image_urls = scrapy.Field()
    images = scrapy.Field()

Мои настройки:

BOT_NAME = 'testspider'
SPIDER_MODULES = ['testspider.spiders']
NEWSPIDER_MODULE = 'testspider.spiders'
DEFAULT_ITEM_CLASS = 'testspider.items'
ROBOTSTXT_OBEY = True
ITEM_PIPELINES = {
    'scrapy.pipelines.images.ImagesPipeline': 1,
}
IMAGE_STORE = '/home/*******/documents/testspider/output'

Если бы вы были так любезны, чтобы помочь мне понять, что отсутствует / что неправильно, я был бы признателен

1 Ответ

1 голос
/ 04 ноября 2019

Если вы проверите исходный код (обычно Ctrl+U в браузере), вы обнаружите, что каждый img выглядит примерно так:

<img class="img-responsive" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src=' https://www.scan-vf.co/uploads/manga/one_piece/chapters/chapitre-807/01.jpg ' alt='One Piece: Chapter chapitre-807 - Page 1'/>

Как видите, вам нужно использоватьdata-src в вашем коде вместо src:

IMAGE_SELECTOR = 'img ::attr(data-src)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...