Сканирование Scrapy не распознано -> ModuleNotFoundError: нет модуля с именем 'win32api' - PullRequest
1 голос
/ 01 мая 2019

TL; DR теперь работает;размещение в интересах других, у которых может быть эта проблема.Приветствую!

при работе с Python 3.6.5 64-bit с использованием conda установлен scrapy 1.6.0 и распознается Visual Studio. Скопируйте и вставьте код документации

import scrapy


class QuotesSpider(scrapy.Spider):
name = "quotes"

    def start_requests(self):
        urls = [
            'http://quotes.toscrape.com/page/1/',
            'http://quotes.toscrape.com/page/2/',
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'quotes-%s.html' % page
        with open(filename, 'wb') as f:
        f.write(response.body)
        self.log('Saved file %s' % filename)

попытайтесь запустить из powershell

scrapy crawl quotes

, который возвращает

Scrapy 1.6.0 - no active project

Unknown command: crawl

, посмотрел: https://github.com/scrapy/scrapy/issues/3344

  • и увидел, что вероятная проблема в том, что я не на правильном уровне файлаОднако я нахожусь в каталоге, в котором находится мой проект, а PowerShell в Visual Studio распознает scrapy.
  • Поскольку я в Visual Studio, то получаю scrapy.cfg, немного запутанный, и когда я туда перешел, это показалось мне очень страннымошибки и не распознает scrapy.
  • все соответствующие подкаталоги в этом каталоге распознают scrapy, но не сканируют scrapy.
  • В посте также упоминается, что я должен быть в директории проекта - я не уверен, что этозначит, так как я относительно новичок в программировании - я полагаю, что это относится к директории моего файла spider.py ...
  • Также scrapy.cfg содержит только значения по умолчанию

при копировании и вставке в извилистый каталог пауков в каталоге ..conda \ pkgs \ scrapy-1.6.0-py36_0 \ Lib \ site-packages \ scrapy \ spiders

  • возникает та же проблема, как и выполнение команды из всех каталогов более высокого уровня
  • , также копирование вставки scrapy в файл паука приводит к серьезным ошибкам

update: running

scrapy startproject <folder containing spider>

позволяет мне запускать сканирование scrapy ... но приводит к совершенно новому беспорядку ошибок для цитат обхода scrapy ->

scrapy list

возвращает ноль / нет используемых пауков

Выполнение

scrapy genspider <dummy> <new dir>

создало необходимые файлы для запуска запущенных пауков -> Я скопировал и вставил свой паук цитат в эту папку и запустил

scrapy list

(это распознало оператор печати, который я имел приконец паука цитаты как новый паук, и теперь я не могу избавиться от него ...?ок ig)

прохождение цитат из ползунков ... ааааа большие и страшные ошибки.Отлично.

поиск последней строки в этой ошибке приводит меня к ImportError: Ни один модуль с именем win32api при использовании Scrapy не рекомендует использовать

pip install pypiwin32

после этого мы запускаем scrapyсканировать кавычки и вуаля, мы получаем длинный страшный ответ в терминале, но это рабочий скрипт с большим количеством выходных данных.файлы, которые, как говорится в учебнике, должны быть там, и при запуске выдают правильный результат.(отсутствует форматирование, но содержание правильное)

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

Это отличается от вопросаупоминается, потому что этот вопрос включает в себя их ответ, а также то, как я дошел до этой точки от сканирования не распознан

...