ModuleNotFoundError: No module named 'stack'

ModuleNotFoundError: No module named 'stack'

我试图从一个网站抓取数据,我已经安装了 scrapy。当我尝试 运行 下面的代码时,它显示“ModuleNotFoundError:没有名为 'stack' 的模块。任何人都可以告诉我发生了什么,我如何 运行 没有任何代码错误?

from scrapy import Spider
from scrapy.selector import Selector

from stack.items import StackItem


class StackSpider(Spider):
    name = "stack"
    allowed_domains = ["whosebug.com"]
    start_urls = [
        "http://whosebug.com/questions?pagesize=50&sort=newest",
    ]

    def parse(self, response):
        questions = Selector(response).xpath('//div[@class="summary"]/h3')

        for question in questions:
            item = StackItem()
            item['title'] = question.xpath(
                'a[@class="question-hyperlink"]/text()').extract()[0]
            item['url'] = question.xpath(
                'a[@class="question-hyperlink"]/@href').extract()[0]
            yield item 

接下来来自您的代码:

item = StackItem()
item['title'] = question.xpath(
    'a[@class="question-hyperlink"]/text()').extract()[0]
item['url'] = question.xpath(
    'a[@class="question-hyperlink"]/@href').extract()[0]

我认为最有可能的 stack.items 不是来自 pypi,它来自您复制的一些本地代码,因为看起来它与 "http://whosebug.com/questions?pagesize=50&sort=newest" 的 html个元素。

所以,也许您将项目设置为 scrapy startproject stack,并且还需要有一个 items.py,如下所示:

items.py:

from scrapy import Item, Field

class StackItem(Item):
    title = Field()
    url = Field()

仔细检查您的参考文件,确认是否有遗漏。