网页小说抓取 ios(豆瓣日记:分页分页的参数和处理方法(组图))
优采云 发布时间: 2021-11-05 12:17网页小说抓取 ios(豆瓣日记:分页分页的参数和处理方法(组图))
总结爬虫爬取数据时的分页。分页是抓取所有数据的关键,一般有以下几种形式:
已知记录数,页大小(pagesize,一页中有多少条记录)
以上前三种情况比较简单。基本上看分页数据加载时的地址栏,或者用Chrome-network稍微分析一下,然后就可以了解分页的URL了。
一、页面分析,获取页面URL
典型的例子是豆瓣图书的分页和电影排行榜。
豆瓣图书分页
51JOB职位分页
像下面这样的页面,不显示总记录数,但是可以从页面栏中看到有多少页。一般的处理方法有两种:一种是先抓取最后一页的页码;另一种是一页一页的访问被抓取,直到没有“下一页”。
Snip20170208_5.png
二、使用抓包工具查看页面URL
简书个人主页文章列表分页
通过抓包工具获取页面URL,然后分析总页面数。一般进行计算。比如这里有文章的总数,以及每页显示的文章的数量(页面大小),可以计算出总页数。
看看这个,7号热门文章的页面比较有趣。这么长的清单更像是一个细分。
简书七日热门文章页面
这时一般缩短参数,确定关键参数。分页的关键参数是page=2,直接把url缩减成这样:
http://www.jianshu.com/trending/weekly?page=2
看到的就是我们需要的数据。
回过头来理解为什么使用这样一串URL,可以查看响应,发现响应是xml数据(一段网页数据),也就是这里使用了异步加载(AJAX)。
三、抓包分析,需要构造一个页面URL
此时通过抓包分析,还无法获取到页面URL。有时抓到的网址直接放在地址栏中,无法查看想要的分页数据,有时分页网址中还有其他参数。
比如短书用户的“动态”数据分页url,抓包为
http://www.jianshu.com/users/54b5900965ea/timeline?max_id=96235332&page=2
下面是如何获取 max_id 的值。另一个问题是判断是否到达最后一页。
比如短本中“提交请求”数据的分页:
从抓包得到的分页URL,我访问的时候发现看到的页面和数据不是我们想要的。此时,分析是根据经验。基本方法是结合网页源代码,在chrome中查看响应。