Проблема с запуском команды сканирования из-за пути - PullRequest
0 голосов
/ 21 июня 2019

Я следую онлайн-уроку по запуску простого сканера из командной строки. Когда я запускаю сканер, я получаю (я верю в это) кучу ошибок, связанных с путями. Мой путь хорошо определен, когда я открываю командную строку и пишу «Python», все получается хорошо.

Вот мой код Python для сканера с использованием Scrapy:

import scrapy


class QuotesSpider(scrapy.Spider):
    name = 'quotes'
    allowed_domains = ['quotes.toscrape.com']
    start_urls = ['quotes.toscrape.com']

    def parse(self, response):
        h1_tag = response.xpath('//h1/a/text()').extract_first()
        tags = response.xpath('//*[@class="tag-item"]/a/text()').extract()

        yield {'H1 tag': h1_tag, 'Tags': tags}

Когда я запускаю его в PyCharm, он запускается без ошибок и заканчивается кодом 0.

Это строка, которую я использую в командной строке для сканирования C: \ Users \ Kev \ Desktop \ quotes_spider> цитаты сканирования сканирования ...

Вот ошибки, которые я получаю от команды propmt:

2019-06-21 08:34:10 [scrapy.core.engine] INFO: Spider opened
2019-06-21 08:34:10 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 
0 pages/min), scraped 0 items (at 0 items/min)
2019-06-21 08:34:10 [scrapy.extensions.telnet] INFO: Telnet console 
listening on 127.0.0.1:6023 
2019-06-21 08:34:10 [scrapy.core.engine] ERROR: Error while obtaining 
start requests
Traceback (most recent call last):
  File "c:\users\kev\appdata\local\programs\python\python37-32\lib\site- 
packages\scrapy\core\engine.py", line 127, in _next_request
    request = next(slot.start_requests)
  File "c:\users\kev\appdata\local\programs\python\python37-32\lib\site- 
packages\scrapy\spiders\__init__.py", line 83, in start_requests
     yield Request(url, dont_filter=True)
   File "c:\users\kev\appdata\local\programs\python\python37-32\lib\site- 
packages\scrapy\http\request\__init__.py", line 25, in __init__
    self._set_url(url)
   File "c:\users\kev\appdata\local\programs\python\python37-32\lib\site- 
packages\scrapy\http\request\__init__.py", line 62, in _set_url
    raise ValueError('Missing scheme in request url: %s' % self._url)
 ValueError: Missing scheme in request url: quotes.toscrape.com
 2019-06-21 08:34:10 [scrapy.core.engine] INFO: Closing spider (finished)
2019-06-21 08:34:10 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'finish_reason': 'finished',
 'finish_time': datetime.datetime(2019, 6, 21, 12, 34, 10, 194671),
 'log_count/ERROR': 1,
 'log_count/INFO': 9,
 'start_time': datetime.datetime(2019, 6, 21, 12, 34, 10, 185685)}
 2019-06-21 08:34:10 [scrapy.core.engine] INFO: Spider closed (finished)

В основном я ожидаю получить строку "Crawled (200)

Я предполагаю, что это как-то связано с путем из-за сообщения об ошибке, но я не понимаю, как это возможно, так как мой путь хорошо установлен.

Любая помощь будет принята с благодарностью, спасибо!

1 Ответ

1 голос
/ 21 июня 2019

Отредактируйте start_urls от:

start_urls = ['quotes.toscrape.com']

до:

start_urls = ['http://www.quotes.toscrape.com']

Должно начинаться с http(s)://. Только allowed_domains не должно иметь http(s)://.

...