动态网页抓取(购物助手(2)标签标签及结构())
优采云 发布时间: 2021-12-21 16:17动态网页抓取(购物助手(2)标签标签及结构())
(2)HTML标签和结构。用户在页面上看到的显示是基于HTML显示的,所以爬虫需要解析html页面,提取页面中的url信息。
(3)文本对象模型(DOM)。DOM用于访问和处理HTML和XML文档。它可以构造HTML和XML文档。
(4)正则表达式。根据正则表达式的优良特性,可以根据条件快速提取HTML文本中的指定元素。
2.3 解决方案
AJAX 使用 JavaScript 驱动的异步请求/响应机制。而且,在 Ajax 应用中,JavaScript 会对 DOM 结构进行大量的改动,甚至页面的所有内容都是通过 JavaScript 直接从服务器读取并动态绘制的。因此,爬虫引擎不能只由基于HTTP的协议驱动,而必须由事件驱动。
对于实时数据,系统的实时性主要体现在两个方面:实时数据更新;数据变化后通过其他服务实时获取数据。
面对海量数据,由于捕获能力有限,不可能快速更新所有数据信息。为了保证用户对高实时性数据的要求,我们应该优先保证尽可能多的热门数据的数据更新,因此实时捕获数据点的选择更为关键。这里我们以购物助理的浏览记录和购物搜索查询记录作为热门商品的例子。具体流程为:用户浏览商品,购物助理获取用户浏览商品的URL和其他商城商品的URL列表,发送至任务调度服务器。任务调度服务器根据上次爬取的价格和时间进行调度。将任务分配给抓取服务器,抓取服务器解析出新的价格并发送给结果存储服务器。结果,仓储服务器完成数据更新并通知其他价格事件*敏*感*词*器。这样就完成了整个查询驱动的实时爬取过程。这种实时爬行策略被称为“Query Triggered Crawling”(QTC,简称Query Triggered Crawling)。除了实时抓取和管理所有商品的价格外,价格服务器还需要向其他服务(如降价提醒、全网比价等)提供价格变化的更新事件。如何让其他服务获取实时的商品价格变动信息?我们首先介绍观察者模式。仓储服务器完成数据更新并通知其他价格事件*敏*感*词*器。这样就完成了整个查询驱动的实时爬取过程。这种实时爬行策略被称为“Query Triggered Crawling”(QTC,简称Query Triggered Crawling)。除了实时抓取和管理所有商品的价格外,价格服务器还需要向其他服务(如降价提醒、全网比价等)提供价格变化的更新事件。如何让其他服务获取实时的商品价格变动信息?我们首先介绍观察者模式。仓储服务器完成数据更新并通知其他价格事件*敏*感*词*器。这样就完成了整个查询驱动的实时爬取过程。这种实时爬行策略被称为“Query Triggered Crawling”(QTC,简称Query Triggered Crawling)。除了实时抓取和管理所有商品的价格外,价格服务器还需要向其他服务(如降价提醒、全网比价等)提供价格变化的更新事件。如何让其他服务获取实时的商品价格变动信息?我们首先介绍观察者模式。(QTC,简称Query Triggered Crawling)。除了实时抓取和管理所有商品的价格外,价格服务器还需要向其他服务(如降价提醒、全网比价等)提供价格变化的更新事件。如何让其他服务获取实时的商品价格变动信息?我们首先介绍观察者模式。(QTC,简称Query Triggered Crawling)。除了实时抓取和管理所有商品的价格外,价格服务器还需要向其他服务(如降价提醒、全网比价等)提供价格变化的更新事件。如何让其他服务获取实时的商品价格变动信息?我们首先介绍观察者模式。
观察者模式(也称为发布/订阅模式)是软件设计模式之一。在这种模式下,目标对象管理所有依赖它的观察者对象,并在自身状态发生变化时主动发出通知。这通常是通过调用每个观察者提供的方法来实现的。这种模式通常用于实现事件处理系统。观察者模式在数据变化的实时通知中得到了广泛的应用,使得服务具有高集群、低耦合的特点。
根据应用的不同,爬虫系统在很多方面都有所不同。一般来说,爬虫可以分为以下三种: Batch Crawler:Batch crawler有比较明确的爬行范围和目标。达到这个设定的目标后,爬行过程就会停止。至于具体的目标,可能会有所不同。可能只是设置了一定数量的网页被抓取,也可能是设置了抓取所消耗的时间等等。
增量爬虫(Incremental Crawler):增量爬虫不同于批量爬虫。它将保持连续爬行。爬取的网页必须定期更新,因为互联网的网页在不断变化,新的网页不断增加。网页被删除或网页内容更改是很常见的。增量爬虫需要及时反映这种变化。因此,它们都在不断的爬取过程中,要么爬取新的网页,要么更新现有的网页。常见的商业搜索引擎爬虫基本都属于这一类。
垂直爬虫(Focused Crawter):垂直爬虫专注于特定主题内容或属于特定行业的网页。例如,对于在线旅行,您只需从互联网页面中查找与在线旅行相关的页面内容。内容不考虑。垂直爬虫最大的特点和难点之一就是如何识别网页内容是否属于特定的行业或主题。从节省系统资源的角度考虑,不可能把所有的网页都下载下来然后过滤。这太浪费资源了。爬虫往往需要在爬取阶段动态识别某个网址是否与主题相关。并且尽量不要去抓取不相关的页面以节省资源。垂直搜索网站或垂直行业网站
3 结论
对于使用JavaScript对动态页面的抓取,主要采用的技术方案有:(1)事件驱动的爬虫机制。(2)使用观察者模式和查询驱动的抓取方式,实时抓取性数据还介绍了目前流行的爬虫爬取方案。