无法导入废料中的项目

2024-04-25 18:52:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常基本的spider,按照入门指南中的说明操作,但是由于某种原因,尝试将我的项目导入到spider中会返回一个错误。蜘蛛和物品代码如下所示:

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector

from myProject.items import item

class MyProject(BaseSpider):
    name = "spider"
    allowed_domains = ["website.com"]
    start_urls = [
        "website.com/start"
    ]

    def parse(self, response):
        print response.body

from scrapy.item import Item, Field

class ProjectItem(Item):
    title = Field()

当我运行此代码时,scrapy要么找不到我的spider,要么无法导入我的items文件。怎么回事?这应该是个很好的例子吧?


Tags: fromimportcomfieldresponse指南itemswebsite
4条回答

所以,这是我前几天遇到的一个问题,我可以通过一些尝试和错误来解决,但是我找不到任何文档,所以我想我会把这个放在上面,以防有人遇到和我一样的问题。

这与其说是scrapy的问题,不如说是命名文件和python如何处理导入模块的问题。基本上问题是,如果您将spider文件命名为与项目相同的名称,那么您的导入将中断。Python将尝试从最接近您当前位置的目录导入,这意味着它将尝试从spider的目录导入,但该目录不起作用。

基本上只要把你的蜘蛛文件的名字改成其他的,它就会正常运行。

在与scrapy一起工作时,我也有过几次这样的经历。您可以在Python模块的开头添加以下行:

from __future__ import absolute_import

更多信息请点击此处:

所以,这是我前几天遇到的一个问题,我可以通过一些尝试和错误来解决,但是我找不到任何文档,所以我想我会把这个放在上面,以防有人遇到和我一样的问题。

这与其说是scrapy的问题,不如说是命名文件和python如何处理导入模块的问题。基本上,问题是如果您将spider文件命名为与项目相同的名称,那么您的导入将中断。Python将尝试从最接近您当前位置的目录导入,这意味着它将尝试从spider的目录导入,但该目录不起作用。

基本上只要把你的蜘蛛文件的名字改成其他的,它就会正常运行。

导入字段时,必须从items.py导入类 例如从myproject.items import类名

相关问题 更多 >