尝试将 scrapy spider 导入 django 时导入错误

Import Error when trying to import scrapy spider into django

我正在尝试 运行 当用户发出请求时从 django 项目抓取蜘蛛,所以我目前正在测试来自 scrapy docs 的代码 运行ning来自脚本的蜘蛛。为了测试如何将蜘蛛导入到 django 项目中,我在放置 scrapy 蜘蛛的同一目录中向 django 项目添加了一个文件(即 url、设置和 wsgi 文件所在的位置)。当我尝试将函数从蜘蛛文件导入 运行 爬虫进程时,出现导入错误。这是我使用的语句:

from trydjango18.ticket_city_scraper.ticket_city_scraper.ticket_city_scraper.spiders.tc_spiders import spiderCrawl

这可能看起来含糊不清,所以我在下面提供了文件路径的屏幕截图。导入 spider.py 文件的正确方法是什么?

带有 scrapy 蜘蛛的文件路径

带有测试文件的文件路径

更新 我能够从脚本中将蜘蛛获取到 运行;但是,我现在从 items 模块的蜘蛛文件中收到另一个导入错误。我认为这很可能是因为只有 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)

据我所知,有 2 个错误:

  1. 你的路径中有多余的ticket_city_scraper

    应该是:

    from trydjango18.ticket_city_scraper.ticket_city_scraper.spiders.tc_spiders import spiderCrawl
    
  2. 没有tc_spiders.py.

    添加 tc_spiders.py 或从 tc_spider.py 导入。

考虑到您询问了

the spider.py file

我假设你的意思是 tc_spider.py,因此完整的解决方案是:

from trydjango18.ticket_city_scraper.ticket_city_scraper.spiders.tc_spider import spiderCrawl

还要确保:

  1. 每个包裹包含 __init__.py.
  2. tc_spiders.py/tc_spider.py 包含模块级函数 spiderCrawl.