为什么pyhton找不到scrapy生成的包?

问题描述 投票:0回答:1
Platform: Windows 10.
IDE: v.s. code
Python version: 3.12.1
Scrapy version: 2.11.0

我使用终端生成了一个 scrapy 项目:

scrapy startprojet NewScrapyProject

之后我转到 items.py 文件并修改现有项目:

import scrapy

class MyItem(scrapy.Item):
    field1 = scrapy.Field()
    field2 = scrapy.Field()

然后我在 new_síder.py 文件中的 Spiders 文件夹中创建了一个新的蜘蛛,为其命名,导入该项目,定义解析方法,并创建蜘蛛的实例:

from NewScrapyProject.items import MyItem
from scrapy.spiders import CrawlSpider

class NewSpider(CrawlSpider):
    name='my_spyder'

    def parse(self, response):
        item = MyItem()
        item['field1'] = response.xpath('//div[1]//ul/li').get()
        item['field2'] = response.xpath('//div[1]//ul//li[2]').get()
        yield item

spider = NewSpider()
print(spider.name)

(这里不要混淆,scrapy会生成一个根文件夹和里面的一个包,两者同名)

最后,我只是点击播放,看看到目前为止是否一切正常。但是:

Traceback (most recent call last):File"c:\Users\USER\Documents\pythonProjects\NewScrapyProject\NewScrapyProject\spiders\new_spider.py", line 1, in <module>from NewScrapyProject.items import MyItemModuleNotFoundError: No module named 'NewScrapyProject'

我更改了文件和文件夹名称,清除了缓存,更改为 python 3.10.2,相对导入(来自 ..items)...

我才刚刚开始,无法超越!帮忙!

python windows import scrapy
1个回答
0
投票

我只需在项目的根文件夹中创建一个“.py”文件(随意命名)。我只是剪切代码来实例化一个新的蜘蛛并从它所在的位置打印它的名称,然后将其粘贴到这个新文件中。像这样:

if __name__ == '__main__':
    spider = NewSpider()
    print(spider.name)

不要忘记导入 NewSpider 类

© www.soinside.com 2019 - 2024. All rights reserved.