我无法加载 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/