我有一个非常基本的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文件。怎么回事?这应该是个很好的例子吧?
所以,这是我前几天遇到的一个问题,我可以通过一些尝试和错误来解决,但是我找不到任何文档,所以我想我会把这个放在上面,以防有人遇到和我一样的问题。
这与其说是scrapy的问题,不如说是命名文件和python如何处理导入模块的问题。基本上问题是,如果您将spider文件命名为与项目相同的名称,那么您的导入将中断。Python将尝试从最接近您当前位置的目录导入,这意味着它将尝试从spider的目录导入,但该目录不起作用。
基本上只要把你的蜘蛛文件的名字改成其他的,它就会正常运行。
在与
scrapy
一起工作时,我也有过几次这样的经历。您可以在Python模块的开头添加以下行:更多信息请点击此处:
所以,这是我前几天遇到的一个问题,我可以通过一些尝试和错误来解决,但是我找不到任何文档,所以我想我会把这个放在上面,以防有人遇到和我一样的问题。
这与其说是scrapy的问题,不如说是命名文件和python如何处理导入模块的问题。基本上,问题是如果您将spider文件命名为与项目相同的名称,那么您的导入将中断。Python将尝试从最接近您当前位置的目录导入,这意味着它将尝试从spider的目录导入,但该目录不起作用。
基本上只要把你的蜘蛛文件的名字改成其他的,它就会正常运行。
导入字段时,必须从items.py导入类 例如从myproject.items import类名。
相关问题 更多 >
编程相关推荐