Java数据采集-4.分析常见的翻页(加载数据)方式

Posted geekfly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java数据采集-4.分析常见的翻页(加载数据)方式相关的知识,希望对你有一定的参考价值。

本篇文章主要分析当下常见的几种翻页(加载数据)的方式,并结合实际例子和截图介绍。在后续博客中针对这些网站,写代码完成数据抓取。

1. 根据页码进行翻页

如CSDN的个人博客列表,我们可以轻松的分析出总页数和列表页地址。
共两页,列表页地址为:http://blog.csdn.net/TMaskBoy/article/list/2

对于此类型的网页,我们只需要根据总页数,遍历所有的列表页即可,对于一些数据量极大,页数有最大值限制时,需要根据分类或者检索条件解决。

2. 根据下拉网页进行加载数据

上一篇博客写的开源中国新闻列表,其加载数据方式即为下拉刷新。
此类型的网页我们可以打开浏览器的开发者工具,点击网络(Network),首先清空原有的请求,拖动网页的滚动条到底部,可看到网页新发出的Url请求,一般都会有页数等相关参数。


注意:加载数据请求一般均为Post类型


返回数据样例:

此处我们可以看出,返回的数据和上一篇博客循环解析的节点一致。

此种翻页我们需要不断的递增翻页请求中的当前页码参数,对于有些网页,在请求到一定页之后会不在返回数据,一般需要根据分类或查询条件等不断精确范围,保证抓取到更多的数据。

3. Ajax无刷新请求

Iconfont 阿里巴巴矢量图库的翻页即为Ajax无刷新请求,此类型翻页请求类型一般为Post,参数包括查询参数,当前页数,每页条目数等等,返回数据为Json。
http://www.iconfont.cn/search/index?q=java&page=2


下图为请求参数:


下图为请求地址和请求方式,返回值类型:


下图为数据样例:

此类型的翻页不需要进行html的解析,但需要对返回的Json数据做解析,可使用FastJson等工具将Json数据转化为Map字典或者对应的实体对象,进而获取各个键或者属性,达到获取数据的目的。翻页请求和上述相同。

接下来的博客针对上述三种加载数据的方式编写实际的代码抓取数据。

以上是关于Java数据采集-4.分析常见的翻页(加载数据)方式的主要内容,如果未能解决你的问题,请参考以下文章

使用原生JS实现表格数据的翻页功能

easyui的datagrid的翻页控件的事件,有没有啥对应的翻页函数,或者翻页控件绑定的函数

论坛类应用双Tableview翻页效果实现

(java)selenium webdriver学习---实现简单的翻页,将页面内容的标题和标题链接取出

从数据库中提出数据,实现图片上一页、下一页的翻页功能,请问一下“获取链接和command部分怎么写?”

windows phone 8.1 电子书阅读器中的翻页动画