Python 从脚本运行scrapy(初学者)

Python 从脚本运行scrapy(初学者),python,web-scraping,scrapy,importerror,Python,Web Scraping,Scrapy,Importerror,我开始学习python,是的,我已经在这个网站和网络上搜索了答案,但不知怎的,我真的无法让它运行 我已经创建了一个spider类EbaySpider,它位于spider/ebay.py中,我可以从命令行启动它而不会出现问题(甚至可以输出到JSON文件)。现在我想从另一个.py文件中启动scrapy,这样我就可以直接访问爬网的数据并将其输出到GUI(稍后将考虑如何实现) 我从(askers代码中获取了代码,因为我不需要多次运行spider)并添加了 from spiders import ebay

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

我已经创建了一个spider类EbaySpider,它位于spider/ebay.py中,我可以从命令行启动它而不会出现问题(甚至可以输出到JSON文件)。现在我想从另一个.py文件中启动scrapy,这样我就可以直接访问爬网的数据并将其输出到GUI(稍后将考虑如何实现)

我从(askers代码中获取了代码,因为我不需要多次运行spider)并添加了

from spiders import ebay
from scrapy.crawler import CrawlerProcess
从一开始,就要拥有所有必要的资源

我得到的错误是

ImportError:无法导入名称ebay

很自然,我对importstatement进行了修改,将其从“ebay”改为“EbaySpider”,将“spider”改为“spider.ebay”或“projectname.spider.ebay”,但不知何故,它们似乎都不起作用

如果您能告诉我如何解决这个问题,或者以另一种方式运行spider,然后在我的python程序中访问已爬网的数据,那就太好了。我对任何有效且可以理解的东西都很满意:)

谢谢大家

您可以尝试使用python的功能从相对于python脚本的目录导入模块。由于
spider
模块不是您的
PYTHON\u路径,因此无法导入模块

from.spider导入易趣


注意:之前的
蜘蛛

基本上你有三个选择

  • 将“spider”目录作为模块安装到PYTHONPATH中
  • 将“ebay.py”文件与脚本放在同一目录中,只需导入ebay即可
  • 修改python路径,以便python可以找到您的spider
对于第三个选项,您必须在
spider
目录中创建一个文件
\uuu init\uu uuu.py
。它可以是空的。然后必须按如下方式修改脚本(假设
spider
是运行程序的目录的子目录):


结果是“ValueError:尝试在非软件包中进行相对导入”,将其复制到同一目录中可以快速修复,谢谢!
import os
import sys
sys.path.append(os.getcwd()+'/spiders')
print sys.path
from spiders import ebay