Scrapy не сканирует любые URL - PullRequest
0 голосов
/ 27 февраля 2019

Я поместил свой код в оболочку scrapy, чтобы проверить мой xpath, все выглядит нормально.Однако я не могу понять, почему 0 ползет.Вот вывод журнала:

2019-02-27 18:04:47 [scrapy.utils.log] ИНФОРМАЦИЯ: Scrapy 1.5.1 запущен (бот: jumia) 2019-02-27 18: 04: 47 [scrapy.utils.log] ИНФОРМАЦИЯ: Версии: lxml 4.3.0.0, libxml2 2.9.9, cssselect 1.0.3, parsel 1.5.1, w3lib 1.20.0, Twisted 18.9.0, Python 2.7.15+(по умолчанию, 28 ноября 2018 г., 16:27:22) - [GCC 8.2.0], pyOpenSSL 18.0.0 (OpenSSL 1.1.0j 20 ноября 2018 г.), криптография 2.4.2, платформа Linux-4.19.0-kali1-amd64-x86_64-with-Kali-kali-Rolling-Kali-Rolling 2019-02-27 18:04:47 [scrapy.crawler] ИНФОРМАЦИЯ: Переопределенные параметры: {'NEWSPIDER_MODULE': 'jumia.spiders', 'SPIDER_MODULES': ['jumia.spiders'], 'ROBOTSTXT_OBEY': True, 'BOT_NAME': 'jumia'} 2019-02-27 18:04:47 [scrapy.middleware] ИНФОРМАЦИЯ: Включенные расширения: ['scrapy.extensions.memusage.MemoryUsage',' scrapy.extensions.logstats.LogStats ',' scrapy.extensions.telnet.TelnetConsole ',' scrapy.extensions.corestats.CoreStats '] 2019-02-27 18:04:47 [scrapy.middleware] ИНФО: включенопромежуточные программы для загрузчиков: ['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware ',' scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware ',' scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware ',' scrapy.downloadermiddlewares.defaultware.waredownid_loaderidretry.RetryMiddleware ',' scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware ',' scrapy.downloadermiddlewares.httpcompression.httpproxy.HttpProxyMiddleware ',' scrapy.downloadermiddlewares.stats.DownloaderStats '] 2019-02-27 18:04:47 [scrapy.middleware] ИНФОРМАЦИЯ: Включено промежуточное ПО паука: [' scrapy.spidermiddlewares.httperror.HttpErrorMiddleware '',spidermiddlewares.offsite.OffsiteMiddleware ',' scrapy.spidermiddlewares.referer.RefererMiddleware ',' scrapy.spidermiddlewares.urllength.UrlLengthMiddleware ',' scrapy.spidermiddlewares.depth.DepthMiddleware '] 2019-02-27 18:04:47 [scrapy.middleware] ИНФОРМАЦИЯ: Включены конвейеры элементов: [] 2019-02-27 18:04:47 [scrapy.core.engine] ИНФОРМАЦИЯ: Паук открыт 2019-02-27 18:04:47 [scrapy.extensions.logstats] ИНФОРМАЦИЯ: Сканировано 0 страниц (при 0 страницах / мин), очищено 0 элементов (при 0 элементах / мин) 2019-02-27 18:04:47 [scrapy.extensions.telnet] ОТЛАДКА: консоль Telnet прослушивает 127.0.0.1:6029 2019-02-27 18:04:47 [scrapy.core.engine] ИНФОРМАЦИЯ: Закрытие паука (завершено) 2019-02-27 18:04:47 [scrapy.statscollectors] ИНФОРМАЦИЯ: Статистика Dumping Scrapy: {'finish_reason': 'done', 'finish_time': datetime.datetime (2019, 2, 27, 17, 4, 47, 950397)), 'log_count / DEBUG': 1, 'log_count / INFO': 7, 'memusage / max': 53383168, 'memusage / startup': 53383168, 'start_time': datetime.datetime (2019, 2, 27, 17,4, 47, 947520)} 2019-02-27 18:04:47 [scrapy.core.engine] ИНФОРМАЦИЯ: Паук закрыт (закончен)

Вот мой код паука:

    import scrapy
    from scrapy.loader import ItemLoader
    from scrapy.loader.processors import MapCompose
    from scrapy.loader.processors import TakeFirst
    from jumia.items import JumiaItem


    class ProductDetails (scrapy.Spider):
        name = "jumiaProject"
        start_url = ["https://www.jumia.com.ng/computing/hp/"]

        def parse (self, response):

            search_results = response.css('section.products.-mabaya > div')

            for product in search_results: 

                product_loader = ItemLoader(item=JumiaItem(), selector=product)

                product_loader.add_css('brand','h2.title > span.brand::text')

                product_loader.add_css('name', 'h2.title > span.name::text')

                product_loader.add_css('link', 'a.link::attr(href)')


                yield product_loader.load_item()

Вот мой items.py:

# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy
from scrapy.loader.processors import MapCompose
class JumiatesteItem(scrapy.Item):
    # define the fields for your item here like:
    name  = scrapy.Field()
    brand = scrapy.Field()
    price = scrapy.Field()
    link  = scrapy.Field()

1 Ответ

0 голосов
/ 27 февраля 2019

Правильное имя переменной в вашем Spider должно быть start_urls, а не start_url.Из-за неправильного имени он не обнаруживает никаких URL.

...