我想基于Scrapy构建一个网络爬虫,从多个新闻门户网站抓取新闻图片。我希望这个爬虫具备以下特点:
永久运行
即定期重新访问某些门户页面以获取更新。
设置优先级
给不同类型的URL分配不同的优先级。
多线程抓取
我已阅读Scrapy文档,但没有找到与我列出的内容相关的部分(可能我不够仔细)。有人知道如何做到这一点吗?或者只是给一些想法/例子。谢谢!
我想基于Scrapy构建一个网络爬虫,从多个新闻门户网站抓取新闻图片。我希望这个爬虫具备以下特点:
永久运行
即定期重新访问某些门户页面以获取更新。
设置优先级
给不同类型的URL分配不同的优先级。
多线程抓取
我已阅读Scrapy文档,但没有找到与我列出的内容相关的部分(可能我不够仔细)。有人知道如何做到这一点吗?或者只是给一些想法/例子。谢谢!
Scrapy是一个用于爬取网站的框架,因此它旨在支持您的标准,但默认情况下不会为您自动完成所有任务;您可能需要对该模块进行一些熟悉才能完成某些任务。
Scrapy是一个库,而不是应用程序。使用该模块的用户需要编写相当数量的代码。
signals.spider_idle
信号,并在连接到该信号的方法中,需要抛出DontCloseSpider
异常。当没有挂起请求时,spider_idle
信号被发送到scrapy引擎, 默认情况下,蜘蛛将关闭。 您可以拦截此过程。import scrapy
from scrapy.exceptions import DontCloseSpider
from scrapy.xlib.pydispatch import dispatcher
class FooSpider(scrapy.Spider):
def __init__(self, *args, **kwargs):
super(FooSpider, self).__init__(*args, **kwargs)
dispatcher.connect(self.spider_idle, signals.spider_idle)
def spider_idle(self):
#you can revisit your portal urls in this method
raise DontCloseSpider