上一篇scrapy爬虫起步(1)–第一个爬虫程序介绍了利用scrapy进行数据抓取的一个简单例子,需要从命令行运行。有些时候我们需要的是直接从代码中调用,Scrapy提供了相应的接口,具体见这儿在脚本中运行Scrapy
实践过程中发现版本不一样程序差距蛮大,我现在使用的版本是:Scrapy 0.24.6
,因此参照的是0.24的文档,如果选择最新的文档在脚本中运行Scrapy会有问题,使用时需要注意一下。
贴下代码吧:
# coding=utf-8
__author__ = 'Jeffee Chen'
from ifeng.spiders.groupSpider import GroupSpider
from scrapy.crawler import Crawler
from scrapy.utils.project import get_project_settings
from twisted.internet import reactor
from scrapy import log, signals
from scrapy.contrib.spiders import CrawlSpider
if __name__ == '__main__':
spider = GroupSpider(CrawlSpider)
settings = get_project_settings()
crawler = Crawler(settings)
crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run()
这里需要说明的一点是,在上一篇中我们在pipelines里定义了数据输出到data.json文件,路径使用的是相对路径,使用命令行运行时data.json被输出到工程根目录下;但使用现在这种调用方式时,data.json文件被输出到了该调用文件的同一目录下。
只要注意好版本问题,代码还是挺简单的
之前不小心弄错版本,出现各种匪夷所思的问题……
Good Luck!