在尝试将类导入另一个文件时,我很难理解我做错了什么,Python_3.6是我正在使用的版本。我想提一下;我正在使用Django Framework来制作网络抓取应用程序。
这是第一堂课:
from scrapy import Item, Field
class Article(Item):
# define the fields for your item here like:
# name = scrapy.Field()
title = Field()
pass
这是第二个类(错误是由于第2行引发的,我知道这个,但我不知道为什么?):
from scrapy import Spider
from OceanCrawler.WebScraping.wiki.wiki.items import Article
class ArticleSpider(Spider):
name = "article"
allowed_domains = ["en.wikipedia.org"]
start_urls = ['https://en.wikipedia.org/wiki/Main_Page']
def parse(self, response):
item = Article()
title = response.xpath('//h1/text()')[0].extract()
print("TITLE: " + title)
item['title'] = title
return item
以下是我的应用程序的文件结构:File Struct
运行命令时:
scrapy crawl article
预期的过程是一次成功的网络抓取。但我收到一个错误(ModuleNotFoundError:没有名为' OceanCrawler'的模块),这里是stack trace。
我尝试了不同的步骤,例如使用
from . import Article
上面的代码导致Pycharm抛出语法错误。
旁注: 我知道我可以通过将文章类包含在与文章蜘蛛类相同的文件中来修复该问题,但我不希望这样。我希望将物品和蜘蛛分开。