从脚本运行scrapy(初学者)

时间:2013-03-19 20:25:41

标签: python web-scraping scrapy importerror

我开始进入python,是的,我已经在这个网站和网页上搜索了一个答案,但不知怎的,我真的无法让它运行。

我已经创建了一个蜘蛛类EbaySpider,驻留在spider / ebay.py中,我可以从命令行开始没有问题(即使输出到JSON文件)。现在我想从另一个.py文件开始scrapy,这样我就可以直接访问已爬网的数据并将其输出到GUI(稍后会考虑如何做)。

我已经从this question获取代码(askers代码,因为我不需要多次运行蜘蛛)并添加了

from spiders import ebay
from scrapy.crawler import CrawlerProcess

从头开始,掌握所有必要的资源。

我得到的错误是

  

ImportError:无法导入名称易趣。

当然,我已经玩过importstatement,将它从'ebay'改为'EbaySpider',将'蜘蛛'改为'spiders.ebay'或'projectname.spiders.ebay',但不知何故它们似乎都没有用。

如果你能告诉我如何解决这个问题,或者运行蜘蛛的另一种方式然后可以访问我的python程序中的已爬行数据,那将是很棒的。我对任何有效的东西都感到高兴,并且可以理解的一半:)

谢谢大家!

2 个答案:

答案 0 :(得分:0)

您可以尝试使用python的relative import功能从相对于python脚本的目录导入模块。您无法导入模块的原因是因为spiders模块不是您的PYTHON_PATH

from .spiders import ebay

注意:spiders之前的

答案 1 :(得分:0)

基本上你有三个选择;

  • 将'spiders'目录安装为PYTHONPATH
  • 中的模块
  • 将'ebay.py'文件放在与脚本相同的目录中,只放import ebay
  • 修改你的python路径,以便python可以找到你的蜘蛛。

对于第三个选项,您必须在__init__.py目录中创建文件spiders。它可以是空的。然后你必须修改你的脚本如下(假设spiders是你的程序运行目录的子目录):

import os
import sys
sys.path.append(os.getcwd()+'/spiders')
print sys.path
from spiders import ebay