【发布时间】:2020-07-24 02:25:19
【问题描述】:
我无法将 scrapy 项目加载到 scrapy 蜘蛛。这是我的项目结构:
-rosen
.log
.scrapers
..scrapers
...spiders
....__init__.py
....exampleSpider.py
...__init__.py
...items.py
...middlewares.py
...pipelines.py
...settings.py
.src
..__init__.py
..otherStuff.py
.tmp
这个结构是使用scrapy startproject scrapers 在rosen 项目(目录)中创建的。
现在,items.py 具有以下代码:
import scrapy
from Decimal import Decimal
class someItem(scrapy.Item):
title: str = scrapy.Field(serializer=str)
bid: Decimal = scrapy.Field(serializer=Decimal)
而exampleSpider.py 的代码如下:
import scrapy
from __future__ import absolute_import
from scrapy.loader import ItemLoader
from scrapers.scrapers.items import someItem
class someSpider(scrapy.Spider):
name = "some"
def __init__(self, **kwargs):
super().__init__(**kwargs)
self._some_fields = someItem()
def parse(self, response) -> None:
some_loader = ItemLoader(item=self._some_fields, response=response)
print(self._some_fields.keys())
我得到的错误如下:runspider: error: Unable to load 'someSpider.py': No module named 'scrapers.scrapers'
我找到了Scrapy: ImportError: No module named items,并通过重命名和添加from __future__ import absolute_import 尝试了所有三种解决方案。没有什么帮助。请指教。
我执行的命令是scrapy runspider exampleSpider.py。我从spiders 和rosen 目录中尝试过。
【问题讨论】:
-
你执行了什么命令来运行蜘蛛?
-
添加到问题中,感谢指出
-
试试
from ..items import someItem而不是from scrapers.scrapers.items import someItem -
谢谢!我也试过这个,我得到另一个错误
runspider: error: Unable to load 'exampleSpider.py': attempted relative import with no known parent package` -
@alienbeeq 你需要运行命令
scrapy crawl some这可能会工作docs.scrapy.org/en/latest/topics/…
标签: python scrapy namespaces web-crawler loading