美文网首页爬虫程序员dotNET
3.2、苏宁百万级商品爬取 思路讲解 商品爬取

3.2、苏宁百万级商品爬取 思路讲解 商品爬取

作者: HapplyFox | 来源:发表于2018-07-10 16:28 被阅读15次

    问题2 局部加载

    经过问题1“所见非所得”,我们大概对一些套路有了了解,接下取的局部加载也是一个简单的小套路。
    这个方式可以这么解释
    你所看到的内容其实是一步一步加载出来的,而不是一下子都给你看到的。这是什么意思呢,其实有点问题1种jsonp种每次加载5个数据的意思。而我们现在要将的是商品的局部加载。还是一样的,我们给出几张图来进行说明。

    局部加载1.png 局部加载2.png

    如上图所示,当我们第一次打开页面的时候,我们可以看到当前商品li标签个数为30,可是当我们将下拉框移动到页面底部,这个时候我们再看查看li标签个数,此时变成了60。这就又是一个小把戏了。
    如果我们按照一般的方法爬取数据,我们就会丢掉一般的数据,是不是特别的坑呢。
    既然我们已经发现了这个问题,我们如果解决,这又是一个值得大家考虑的问题,大家可以先进行一下尝试,然后在看接下去的内容,也算是对自己的一个锻炼。

    分析

    首先我们看第一张图,还是通过f12打开开发者共工具,工具栏我们选择查看xhr内容,这个时候我们就能够发现有符合我们条件的数据出现。我们看到请求返回的内容“分析1.1.png”我们发现就是当前页面商品去掉了一些价格,类别等属性的“结构”。所以内容我们得到了,接着我们分析什么样子请求可以得到对应的内容

    如图“分析3.png” “分析4.png”比较,他们只有一个后缀不同,我们不妨猜测,是不是加了后缀的为后30个商品,不加的为前30个商品。经过实现证实了我们的猜想。

    如果我要得到A类别的第B页的商品我应该如何拼接符合条件的地址
    我们首先分析地址,地址如下

     https://list.suning.com/emall/showProductList.do?ci=179001&pg=03&cp=2&il=0&iy=0&adNumber=0&n=1&prune=0&sesab=ABBAAA&id=IDENTIFYING&cc=025
    

    分析当前地址 “分析2.png” “分析2.1.png” 我们可以知道pg=03为当前页码 ci=179001为当前产品编码,所以如果我们要得到符合上述条件的地址,只需要请求如下俩个地址

    https://list.suning.com/emall/showProductList.do?ci={页码}&pg={产品编码}&cp=2&il=0&iy=0&adNumber=0&n=1&prune=0&sesab=ABBAAA&id=IDENTIFYING&cc=025
    
    https://list.suning.com/emall/showProductList.do?ci={页码}&pg={产品编码}&cp=2&il=0&iy=0&adNumber=0&n=1&prune=0&sesab=ABBAAA&id=IDENTIFYING&cc=025&paging=1&sub=0
    

    当然在实际编码过程种还会存在其他问题,我在此稍稍提一下,第一个页面获取商品的xpath和第二个页面获取商品的xpah是不一样的

    分析1.png 分析1.1.png 分析2.png 分析2.1.png 分析3.png 分析4.png

    相关文章

      网友评论

        本文标题:3.2、苏宁百万级商品爬取 思路讲解 商品爬取

        本文链接:https://www.haomeiwen.com/subject/vnxqpftx.html