我想构建一个基于Scrapy的网络爬虫来从几个新闻门户网站上获取新闻图片。我想这个爬虫是:
永远跑步
意味着它将定期重新访问某些门户网站页面以获取更新。
安排优先事项。
为不同类型的网址指定不同的优先级。
多线程提取
我已经阅读了Scrapy文档,但没有找到与我列出的相关的内容(也许我不够谨慎)。这里有人知道怎么做吗?或者只是给出一些关于它的想法/例子。谢谢!
答案 0 :(得分:12)
Scrapy是一个用于抓取网站的框架,因此,它旨在支持您的标准,但它不会为您提供开箱即用的舞蹈;对于某些任务,您可能需要相对熟悉该模块。
Scrapy是一个库,而不是一个应用程序。模块的用户需要进行大量的工作(代码)。
答案 1 :(得分:0)
关于永久跑步的要求,这里有一些细节。
你需要捕捉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