无法识别抓取抓取-> ModuleNotFoundError:没有名为“ win32api”的模块

时间:2019-05-01 02:43:24

标签: python web-scraping scrapy web-crawler

TL; DR,现在可以使用;发布,以帮助可能遇到此问题的其他人。干杯!

使用conda使用python 3.6.5 64位 安装了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

  • ,看到可能的问题是我的文件不正确 级别,但是我在包含我的项目的目录中, Visual Studio中的powershell识别出刮擦。
  • 因为我在Visual Studio中工作,所以开始抓狂了。cfg有点令人费解 &当我导航到那里时,它给了我非常奇怪的错误,并且没有 识别出沙皮。
  • 此目录中的所有相关子目录都可以识别scrapy,但是 不抓取抓取。
  • 帖子还提到我必须在项目目录中-我不确定 这意味着,因为我是编程的新手,所以我相信 指的是我的spider.py文件的目录...
  • scrapy.cfg除了默认值外不包含任何内容

当复制粘贴到下面的复杂蜘蛛目录中时 ..conda \ pkgs \ scrapy-1.6.0-py36_0 \ Lib \ site-packages \ scrapy \ spiders

  • 发生同样的问题,从更高版本运行命令 级别目录
  • 还将刮擦粘贴复制到蜘蛛文件中会导致真正的错误

更新:正在运行

scrapy startproject <folder containing spider>

让我进行抓取抓取... 但对于抓取抓取报价会导致全新的错误->

scrapy list

返回空值/没有可用的蜘蛛

运行

scrapy genspider <dummy> <new dir>

创建了必要的文件以开始运行蜘蛛程序->我将引号蜘蛛程序复制并粘贴到该文件夹​​中并运行

scrapy list

(这可以识别我在报价蜘蛛末尾作为新蜘蛛引用的打印语句,现在我不能摆脱它了……?好吧ig)

运行草率爬网引号... aaaand 大而长的可怕错误。很好。

搜索此错误的最后一行将我带到 ImportError: No module named win32api while using Scrapy 建议使用

pip install pypiwin32

此后,我们运行抓取的爬网引号和瞧,我们在终端中得到了一个很恐怖的响应,但是它是一个工作脚本,具有很多输出。教程说的文件应该存在,并且在运行时产生正确的输出。 (缺少某些格式,但内容正确)

我相信我的问题已经解决,以后我会把这个问题发布给碰巧遇到此问题的任何人。

这与提到的问题不同,因为此问题包括他们的答案以及我如何从无法识别的抓取中达到这一点

0 个答案:

没有答案