java爬虫抓取动态网页(动态web的网络爬虫的历史及现状(组图)!)

优采云 发布时间: 2022-02-04 14:07

  java爬虫抓取动态网页(动态web的网络爬虫的历史及现状(组图)!)

  动态网页的网络爬虫研究 1 网络爬虫的历史与现状 网络爬虫是一种自动提取网页的程序。如果将互联网比作蜘蛛网,那么爬虫就是在网络上四处爬行的蜘蛛。传统爬虫从一个或多个初始网页的URL开始,获取初始网页上的URL。在对网页进行爬取的过程中,不断地从当前页面中提取新的 URL 并放入队列中,直到满足系统的某些停止条件。如果把整个互联网看成一个网站,那么网络蜘蛛就可以利用这个原理爬取互联网上的所有网页。随着互联网从Web1.0时代到Web2.0时代的快速发展,由于Ajax异步加载的特点,为了减轻服务器压力,基于Ajax的动态加载技术解决方案已成为大公司的首选。但随着移动互联网的兴起,JavaScript在移动端和PC端的优良特性得到广泛发挥,基于前端MVC/MVVM的模型逐渐进入各大互联网公司的首选方案。数据显示,2011年互联网上动态网页与静态网页的比例为12.1:1。2014年,动态网页与静态网页的比例攀升至22:1。动态网页的急剧崛起,让各大搜索引擎公司觉得基于动态网页的网络爬虫将变得越来越重要。2 问题现状及解决方案2.

  传统爬虫根据url对页面进行爬取,解析页面内容提取新的url用于下一次爬取机制,难以完成。其次,现在网上有很多对实时性要求很高的网站,比如股票、优采云票等等,这些网站里面收录了很多数据并随着服务器不断更新。搜索引擎在抓取这些数据时,由于数据需要下载到本地,所以一直存在数据同步的问题,但是这些实时数据的商业价值非常大。因此,简单来说,当前搜索引擎爬虫系统遇到动态网页时的主要问题是:(1)无法提取Ajax加载的动态页面中的url。(2) 基于 HTTP 请求-响应模型。用户在浏览器中输入一个网页的url,客户端向服务器发送请求,服务器收到请求后,如果没有错误,就会返回该页面。(2)HTML标签和结构。用户在页面上看到的显示是基于HTML显示的,所以爬虫需要解析HTML页面,提取页面中的内容。url信息(3)@ > 文本对象模型(DOM)。DOM 用于访问和处理 HTML 和 XML 文档。它可以构造 HTML 和 XML 文档。(4)正则表达式。根据正则表达式的优良特性可以快速提取指定元素在基于条件的 HTML 文本中。基于 HTTP 请求-响应模型。用户在浏览器中输入一个网页的url,客户端向服务器发送请求,服务器收到请求后,如果没有错误,就会返回该页面。(2)HTML标签和结构。用户在页面上看到的显示是基于HTML显示的,所以爬虫需要解析HTML页面,提取页面中的内容。url信息(3)@ > 文本对象模型(DOM)。DOM 用于访问和处理 HTML 和 XML 文档。它可以构造 HTML 和 XML 文档。(4)正则表达式。根据正则表达式的优良特性可以快速提取指定元素在基于条件的 HTML 文本中。客户端向服务器发送请求,服务器收到请求后,如果没有错误,就会返回页面。(2)HTML标签和结构。用户在页面上看到的显示是基于HTML显示的,所以爬虫需要解析HTML页面,提取页面中的内容。url信息(3)@ > 文本对象模型(DOM)。DOM 用于访问和处理 HTML 和 XML 文档。它可以构造 HTML 和 XML 文档。(4)正则表达式。根据正则表达式的优良特性可以快速提取指定元素在基于条件的 HTML 文本中。客户端向服务器发送请求,服务器收到请求后,如果没有错误,就会返回页面。(2)HTML标签和结构。用户在页面上看到的显示是基于HTML显示的,所以爬虫需要解析HTML页面,提取页面中的内容。url信息(3)@ > 文本对象模型(DOM)。DOM 用于访问和处理 HTML 和 XML 文档。它可以构造 HTML 和 XML 文档。(4)正则表达式。根据正则表达式的优良特性可以快速提取指定元素在基于条件的 HTML 文本中。所以爬虫需要解析HTML页面,提取页面中的内容。url信息(3)@>文本对象模型(DOM)。DOM用于访问和处理HTML和XML文档。它可以构造HTML和XML文档。(4)正则表达式。根据正则的优良特性of 表达式可以根据条件快速提取 HTML 文本中的指定元素。所以爬虫需要解析HTML页面,提取页面中的内容。url信息(3)@>文本对象模型(DOM)。DOM用于访问和处理HTML和XML文档。它可以构造HTML和XML文档。(4)正则表达式。根据正则的优良特性of 表达式可以根据条件快速提取 HTML 文本中的指定元素。

  2.3 解决方案 AJAX 使用 JavaScript 驱动的异步请求/响应机制。而且,在 Ajax 应用中,JavaScript 会对 DOM 结构进行大量的更改,甚至页面的所有内容都是通过 JavaScript 直接从服务器读取和动态绘制的。因此,爬虫引擎不能仅仅由基于HTTP的协议驱动,而必须由事件驱动。对于实时数据,系统的实时特性主要体现在两个方面:数据更新的实时性;数据变化后其他服务的实时性。面对海量数据,由于捕捉能力有限,无法快速更新所有数据信息。为了保证用户对实时数据的高要求,热门数据的数据更新应尽可能优先,因此实时捕获数据点的选择更为关键。这里我们以购物助手的浏览记录和购物搜索的查询记录作为热门产品的例子。具体过程如下:当用户浏览某个商品时,购物助手获取用户浏览过的商品的URL和该商品在其他商城的URL列表,发送给任务调度服务器。将任务分配给抓取服务器,抓取服务器解析新价格并将其发送到结果存储服务器。结果存储服务器完成数据更新并通知其他价格事件*敏*感*词*器。这样就完成了整个查询驱动的实时爬取过程。所以实时捕捉数据点的选择更为关键。这里我们以购物助手的浏览记录和购物搜索的查询记录作为热门产品的例子。具体过程如下:当用户浏览某个商品时,购物助手获取用户浏览过的商品的URL和该商品在其他商城的URL列表,发送给任务调度服务器。将任务分配给抓取服务器,抓取服务器解析新价格并将其发送到结果存储服务器。结果存储服务器完成数据更新并通知其他价格事件*敏*感*词*器。这样就完成了整个查询驱动的实时爬取过程。所以实时捕捉数据点的选择更为关键。这里我们以购物助手的浏览记录和购物搜索的查询记录作为热门产品的例子。具体过程如下:当用户浏览某个商品时,购物助手获取用户浏览过的商品的URL和该商品在其他商城的URL列表,发送给任务调度服务器。将任务分配给抓取服务器,抓取服务器解析新价格并将其发送到结果存储服务器。结果存储服务器完成数据更新并通知其他价格事件*敏*感*词*器。这样就完成了整个查询驱动的实时爬取过程。这里我们以购物助手的浏览记录和购物搜索的查询记录作为热门产品的例子。具体过程如下:当用户浏览某个商品时,购物助手获取用户浏览过的商品的URL和该商品在其他商城的URL列表,发送给任务调度服务器。将任务分配给抓取服务器,抓取服务器解析新价格并将其发送到结果存储服务器。结果存储服务器完成数据更新并通知其他价格事件*敏*感*词*器。这样就完成了整个查询驱动的实时爬取过程。这里我们以购物助手的浏览记录和购物搜索的查询记录作为热门产品的例子。具体过程如下:当用户浏览某个商品时,购物助手获取用户浏览过的商品的URL和该商品在其他商城的URL列表,发送给任务调度服务器。将任务分配给抓取服务器,抓取服务器解析新价格并将其发送到结果存储服务器。结果存储服务器完成数据更新并通知其他价格事件*敏*感*词*器。这样就完成了整个查询驱动的实时爬取过程。购物助手获取用户浏览过的商品的URL和该商品在其他商城的URL列表,发送给任务调度服务器。将任务分配给抓取服务器,抓取服务器解析新价格并将其发送到结果存储服务器。结果存储服务器完成数据更新并通知其他价格事件*敏*感*词*器。这样就完成了整个查询驱动的实时爬取过程。购物助手获取用户浏览过的商品的URL和该商品在其他商城的URL列表,发送给任务调度服务器。将任务分配给抓取服务器,抓取服务器解析新价格并将其发送到结果存储服务器。结果存储服务器完成数据更新并通知其他价格事件*敏*感*词*器。这样就完成了整个查询驱动的实时爬取过程。

  这种实时爬取策略称为“查询驱动爬取”(QTC,Query Triggered Crawling)。价格服务器除了实时捕捉和管理所有商品的价格*敏*感*词*和目标。当达到这个设定目标时,爬行过程停止。至于具体的目标,可能会有所不同,可能设置一定数量的要爬取的网页就够了,也可能是设置爬取所消耗的时间。增量爬虫:与批量爬虫不同,增量爬虫会保持连续爬取。对于被抓取的网页,它们应该定期更新,因为互联网的网页在不断变化,新的网页不断增加。网页被删除或网页内容发生变化是常有的事,增量爬虫需要及时反映这种变化,所以在持续的爬取过程中,要么是爬取新的网页,要么是更新已有的网页.

  常见的商业搜索引擎爬虫基本属于这一类。垂直爬虫(Focused Crawter):垂直爬虫专注于特定主题内容IC或属于特定行业的网页。例如,对于在线旅游,您只需要从互联网页面中找到与在线旅游相关的页面内容。不考虑其他行业内容。垂直爬虫最大的特点和难点之一是如何识别网页内容是否属于指定行业或主题。从节省系统资源的角度来看,不可能把所有的网页都下载下来再过滤。这种资源浪费太多了。爬虫往往需要在爬取阶段动态识别某个URL是否与主题相关。并且尽量不要去抓取不相关的页面,以达到节省资源的目的。垂直搜索网站或垂直行业网站往往需要这种爬虫。3 结束语对于使用JavaScript进行动态页面的爬取,主要的技术方案有:(1)基于事件驱动的爬虫机制。(2)使用观察者模式和查询驱动的爬取方式捕获Get实时数据,并介绍目前流行的爬虫爬取方案。使用观察者模式和查询驱动的爬取方式获取实时数据。并介绍目前流行的爬虫爬取方案。使用观察者模式和查询驱动的爬取方式获取实时数据。并介绍目前流行的爬虫爬取方案。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线