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