Scrapy框架在抓取任何网站时是否有效?我问这个问题是因为我在他们的教程中发现他们通常构建正则表达式,这取决于网站的架构(链接的结构)来抓取它。这是否意味着Scrapy无法通用并抓取任何网站,无论其URL的结构方式如何?因为在我的情况下,我必须处理大量的网站:不可能为每一个网站编写正则表达式。
答案 0 :(得分:1)
广泛抓取
Scrapy默认值针对特定网站的抓取进行了优化。这些站点通常由单个Scrapy蜘蛛处理,虽然这不是必需或不需要的(例如,有一些通用蜘蛛处理任何给定的站点)。
除了 “聚焦抓取” 之外,还有另一种常见的抓取方式,它涵盖了大量(可能无限制)的域数,并且只受限于时间或其他任意约束,而不是在域被爬行到完成时或没有更多请求执行时停止。 这些称为“广泛抓取”,是搜索引擎使用的典型抓取工具。
这些是广泛爬行中常见的一些常见属性:
他们不一定要抓取域完成,因为它 这样做是不切实际的(或不可能的),而是限制了 按时间或抓取的网页抓取次数
它们的逻辑更简单(而不是非常复杂的蜘蛛) 许多提取规则)因为数据经常在a中进行后处理 在单独的阶段,他们同时抓取许多域,这允许 它们可以通过不受任何限制来实现更快的爬行速度 特定的站点约束(每个站点都被慢慢爬行以尊重 礼貌,但许多网站并行抓取)
如上所述,Scrapy默认设置针对重点抓取而非广泛抓取进行了优化。但是,由于其异步架构,Scrapy非常适合执行快速广泛爬网。