python - Scrapy:无法将项目加载到蜘蛛

标签 python scrapy namespaces web-crawler loading

我无法加载 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目录。

最佳答案

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

try:
    from scrapers.items import someItem
except FileNotFoundError:
    from scrapers. scrapers.items import someItem
然后调用它:
scrapy crawl NameOfSpider
或者:
scrapy runspider path/to/spider.py

关于python - Scrapy:无法将项目加载到蜘蛛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61155512/

相关文章:

python - 在 Databricks 中导入笔记本

javascript - 最佳 OOP JavaScript 安全实践

python - 作为脚本运行时,Scrapy 爬虫忽略 `DOWNLOADER_MIDDLEWARES`

c - C 中的 "struct namespace"是否有技术原因?

ruby-on-rails - 如何在rails 4中组织 Controller 目录而不会弄乱路由

Python Beautifulsoup 访问标签中的文本?

Python获取特定元素的元素值

Python:根据 1 和 0 的数组计算结构的面积和周长

python - 如何在Scrapy中忽略已经爬取的URL

python - 提供 scrapy xpath 的备用路径