python-3.x - 在 Python 中的 Scrapy 中导入模块时出错
问题描述
我正在尝试在scrapy中实现蜘蛛,当我运行蜘蛛并尝试了几件事但无法解决时出现错误。错误如下,
runspider: error: Unable to load 'articleSpider.py': No module named 'wikiSpider.wikiSpider'
我还在学习 python 以及 scrapy package 。但我认为这与从不同目录导入模块有关,所以我在 pycharm 中创建的虚拟环境中包含了我的目录树,如下图所示。
另请注意,我正在使用它作为我的虚拟环境的解释器的 python 3.9。
我使用蜘蛛的代码如下,
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from wikiSpider.wikiSpider.items import Article
class ArticleSpider(CrawlSpider):
name = 'articleItems'
allowed_domains = ['wikipedia.org']
start_urls = ['https://en.wikipedia.org/wiki/Benevolent'
'_dictator_for_life']
rules = [Rule(LinkExtractor(allow='(/wiki/)((?!:).)*$'),
callback='parse_items', follow=True)]
def parse_items(self, response):
article = Article()
article['url'] = response.url
article['title'] = response.css('h1::text').extract_first()
article['text'] = response.xpath('//div[@id='
'"mw-content-text"]//text()').extract()
lastUpdated = response.css('li#footer-info-lastmod::text').extract_first()
article['lastUpdated'] = lastUpdated.replace('This page was last edited on ', '')
return article
这是文件中生成错误的代码,
import scrapy
class Article(scrapy.Item):
url = scrapy.Field()
title = scrapy.Field()
text = scrapy.Field()
lastUpdated = scrapy.Field()
解决方案
从“ wikiSpider ”.wikiSpider.items 导入文章
更改此文件夹名称。然后编辑: from wikiSpider.items import Article
解决了。
推荐阅读
- language-agnostic - 半字节在编程中的使用
- c++ - 如何在 QMovie(或 QLabel)中禁用抗锯齿?
- python - 无法检索通过 URL 传递的参数的值
- windows - Visual Studios Code 坚持从跨越两个显示器的窗口开始——我不知道还能尝试什么
- javascript - 创建一个用于循环一组 html 元素的 javascript 方法
- python - 如何为水平条形图创建线性回归线
- python - 过滤计算值的数据框
- javascript - 如何使 og: 元标记在 NextJS 中正常工作?
- c# - WPF c#相对源祖先数据绑定
- php - Amazon AWS:为图像设置签名有效负载是一种好习惯吗?