【问题标题】:Scrapy: cannot load items to spiderScrapy:无法将项目加载到蜘蛛
【发布时间】: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


【解决方案1】:

我在您的目录中看不到任何 virtualenv。所以我建议你这样做,例如。在“玫瑰”下。 你可以试试这个:

try:
    from scrapers.items import someItem
except FileNotFoundError:
    from scrapers. scrapers.items import someItem

然后使用:

scrapy crawl NameOfSpider

或:

scrapy runspider path/to/spider.py

【讨论】:

    猜你喜欢
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2016-02-17
    • 1970-01-01
    • 2015-11-13
    相关资源
    最近更新 更多