我正在尝试在用户发出请求时从django项目中运行scrapy spiders,因此我正在测试scrapy docs中用于从脚本运行蜘蛛的代码。为了测试如何将蜘蛛导入到django项目中,我在django项目中添加了一个文件,该文件位于放置scrapy spider的同一目录中(即urls,settings和wsgi文件所在的位置)。当我尝试导入该函数以从spiders文件运行爬虫进程时,我收到导入错误。这是我用过的陈述:
from trydjango18.ticket_city_scraper.ticket_city_scraper.ticket_city_scraper.spiders.tc_spiders import spiderCrawl
这可能看起来很模糊,所以我有下面文件路径的截图。导入spider.py文件的正确方法是什么?
使用scrapy蜘蛛的文件路径
带有测试文件的文件路径
更新 我能够从脚本中运行蜘蛛;但是,我现在从items模块的spiders文件中得到另一个导入错误。我认为这很可能是因为只有spiders.py的路径被添加到脚本中而不是其他必要的模块。这些是我使用的语句(以及脚本中的其余代码):
import imp
tc_spider = imp.load_source('tc_spider', '/home/elijah/Desktop/trydjango18/src2/trydjango18/trydjango18/ticket_city_scraper/ticket_city_scraper/spiders/tc_spider.py')
bandname = raw_input("Enter bandname")
tc_spider.spiderCrawl(bandname)
答案 0 :(得分:1)
我可以看到有2个错误:
您的路径中还有额外的ticket_city_scraper
。
应该是:
from trydjango18.ticket_city_scraper.ticket_city_scraper.spiders.tc_spiders import spiderCrawl
没有tc_spiders.py
。
添加tc_spiders.py
或从tc_spider.py
导入。
考虑到你问过
spider.py文件
我认为你的意思是tc_spider.py
,因此完整的解决方案是:
from trydjango18.ticket_city_scraper.ticket_city_scraper.spiders.tc_spider import spiderCrawl
同时确保:
__init__.py
。tc_spiders.py
/ tc_spider.py
包含模块级函数spiderCrawl
。