尝试从脚本中的其他位置运行scrapy搜寻器

时间:2013-07-28 10:29:01

标签: python twisted scrapy

所有

我正在尝试完全自动化我的抓取,这是由3个步骤组成的:

1-获取广告的索引页面列表(非scrapy工作,出于各种原因) 2-从步骤1(Scrapy work)中获取的索引页面中获取广告URL列表

我的scrapy项目位于通常的目录中:

C:\ Python27 \脚本\ GetAdUrlsFromIndex_project \ GetAdUrlsFromIndex \蜘蛛\ GetAdUrls_spider.py (“GetAdUrls_spider”文件中的蜘蛛名称是(name =“getadurls”))

我自动执行步骤1和2的脚本位于以下目录中:

C:\ Website_DATA \脚本\ StepByStepLauncher.py

我尝试使用Scrapy文档导入搜寻器并使用以下代码从脚本内部运行:

from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.settings import Settings
from scrapy import log
from GetAdUrlsFromIndex.spiders.GetAdUrls_spider import getadurls

spider = getadurls(domain='website.com')
crawler = Crawler(Settings())
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run() # the script will block here

当我尝试运行此脚本时,我不断收到错误“没有名为GetAdUrlsFromIndex.spiders.GetAdUrls_spider的模块”。我尝试将工作目录更改为几个不同的位置,我玩了一些名字,似乎没什么用。

非常感谢任何帮助..谢谢!

1 个答案:

答案 0 :(得分:0)

如果__init__.pyC:\Python27\Scripts\GetAdUrlsFromIndex_project\GetAdUrlsFromIndex中有C:\Python27\Scripts\GetAdUrlsFromIndex_project\GetAdUrlsFromIndex\spiders,请尝试以这种方式修改脚本

import sys
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.settings import Settings
from scrapy import log

sys.path.append('C:/Python27/Scripts/GetAdUrlsFromIndex_project')
from GetAdUrlsFromIndex.spiders.GetAdUrls_spider import getadurls

spider = getadurls(domain='website.com')
crawler = Crawler(Settings())
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run() # the script will block here