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

时间:2015-07-20 23:14:12

标签: python django import web-scraping scrapy

我正在尝试在用户发出请求时从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蜘蛛的文件路径 enter image description here

带有测试文件的文件路径 enter image description here

更新 我能够从脚本中运行蜘蛛;但是,我现在从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)

1 个答案:

答案 0 :(得分:1)

我可以看到有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导入。

  3. 考虑到你问过

      

    spider.py文件

    我认为你的意思是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