python-3.x - 尝试从脚本运行scrapy时出现“ImportError”
问题描述
我正在编写一个爬虫来抓取hackernews 网站以获取标题和发布者文本并将它们存储在一个.csv 文件中。我希望能够从脚本本身而不是从shell 运行它,因为我是使用CrawlerProcess
所以我可以从脚本运行它,当我使用from scrapy.crawler import CrawlerProcess
VScode时没有显示任何错误,我使用
if __name__ == "__main__":
process = CrawlerProcess()
process.crawl(Hackernews_crawler)
process.start()
在脚本的末尾(我在 medium 上找到它)vscode 也没有显示任何错误,但是当我运行脚本时它给了我
File "/home/amirmhd/Desktop/crawler/web_crawler_bot/web_crawler_bot/spiders/hacker_news_crawler.py", line 3, in <module>
from ..items import Hackernews_items
ImportError: attempted relative import with no known parent package
我无法弄清楚为什么将它作为脚本运行会给我这个错误但是当我在 shell 中运行它时scrapy crawl hackernews
它工作正常!
这是我的代码
我不知道导入项目有什么问题,它作为脚本运行时出错,但它不在 shell 中,这是我的 webcrawler 目录树。我不明白错误究竟来自哪里,是因为CrawlerProcess
还是因为from ..items import Hackernews_items
!
我使用 venv 并且我安装了scrapy pip3 install scrapy
,操作系统 ubuntu 20.04 LTS
提前感谢您的时间