zoukankan      html  css  js  c++  java
  • Python分页爬取数据的分析

    前言

    文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

    作者: 向右奔跑

    PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

    http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

    对爬虫爬取数据时的分页进行一下总结。分页是爬取到所有数据的关键,一般有这样几种形式: 1、已知记录数,分页大小(pagesize, 一页有多少条记录)

    • 已知总页数(在页面上显示出总页数)

    • 页面上没有总记录数,总页数,但能从分页条中找到总页数

    • 滚动分页,知道总页数

    • 滚动分页,不知道总页数

    以上前三种情况比较简单,基本上看一下加载分页数据时的地址栏,或者稍微用Chrome -- network分析一下,就可以了解分页的URL。

    一、页面分析,获取分页URL

    典型的如豆瓣图书、电影排行榜的分页。

    在这里插入图片描述

    对于像以下这种分页,没有显示总记录数,但从分页条上看到有多少页的,一般的处理方法有两种:一是先把最后一页的页码抓取下来;二是一页一页的访问抓取,直到没有“下一页”。 在这里插入图片描述

    二、用抓包工具,查看分页URL

    在这里插入图片描述

    通过抓包工具,获取了分页的URL,再进行总页数的分析,一般是进行计算,如这里,有文章总数量,每页显示的文章数(页大小),就可以计算出总页数。 看一下这个,七日热门文章的分页,比较有意思。这么一长串,是不是比较崩溃。

    在这里插入图片描述

    这时候一般要缩短参数,确定关键参数。分页关键的参数是page=2,直接把url减少成这样:

    在这里插入图片描述

    到就是我们所需要的数据。 再回过头来理解一下,为什么采用了这样一串的URL,可以通过查看response,发现响应的是xml数据(一段网页数据),也就是这里采用了异步加载(AJAX)。

    在这里插入图片描述

     

    三、抓包分析,需要构造分页URL

    这时候,通过抓包分析,还不能获取分页的URL。有时候是抓包到的URL直接放到地址栏也查看不到所要的分页数据,还有时候是分页的URL中有其他参数。

    如简书用户“动态”数据分页url,抓包到的是

    在这里插入图片描述

    这里就要了解如何获取max_id这个值。还有一个问题就是要判断是否到了最后一页。 如简书“投稿请求”数据的分页:

    在这里插入图片描述

    从抓包拿到的分页URL,访问时发现看到的不是我们所要的页面、数据。这时就是根据经验进行分析。基本方法还是结合网页源代码,查看chrome中的response。

  • 相关阅读:
    2017/4/14 afternoon
    2017/4/14 morning补
    2017/4/13 afternoon
    2017/4/13 morning
    2017/4/12 afternoon
    2017/4/12 morning
    4.17上午
    4.14上午
    4.13下午
    4.13上午
  • 原文地址:https://www.cnblogs.com/Qqun821460695/p/11950293.html
Copyright © 2011-2022 走看看