记一下最近了解到的在scrapy中关闭爬虫的办法:
利用scrapy的关闭spider扩展功能
#关闭spider扩展
class scrapy.contrib.closespider.CloseSpider
当某些状况发生,spider会自动关闭。每种情况使用指定的关闭原因。
Scrapy的CloseSpider扩展会在满足条件时自动终止爬虫程序。
发现的两种办法:
1.可以在命令行中设置:
$ scrapy crawl fast -s CLOSESPIDER_ITEMCOUNT=10
$ scrapy crawl fast -s CLOSESPIDER_PAGECOUNT=10
$ scrapy crawl fast -s CLOSESPIDER_TIMEOUT=10
2. 可以通过下面的设置项在setting.py中配置:
CLOSESPIDER_TIMEOUT = 0
CLOSESPIDER_PAGECOUNT = 0
CLOSESPIDER_ITEMCOUNT = 0
CLOSESPIDER_ERRORCOUNT = 0
这四个配置是配置爬虫自动关闭条件的,等于0代表不开启。
CLOSESPIDER_TIMEOUT
默认值: 0
一个整数值,单位为秒。如果一个spider在指定的秒数后仍在运行, 它将以 closespider_timeout 的原因被自动关闭。 如果值设置为0(或者没有设置),spiders不会因为超时而关闭。
CLOSESPIDER_ITEMCOUNT
缺省值: 0
一个整数值,指定条目的个数。如果spider爬取条目数超过了指定的数, 并且这些条目通过item pipeline传递,spider将会以 closespider_itemcou