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

问题2 局部加载

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

3.2、苏宁百万级商品爬取 思路讲解 商品爬取
局部加载1.png
3.2、苏宁百万级商品爬取 思路讲解 商品爬取
局部加载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是不一样的

3.2、苏宁百万级商品爬取 思路讲解 商品爬取
分析1.png
3.2、苏宁百万级商品爬取 思路讲解 商品爬取
分析1.1.png
3.2、苏宁百万级商品爬取 思路讲解 商品爬取
分析2.png
3.2、苏宁百万级商品爬取 思路讲解 商品爬取
分析2.1.png
3.2、苏宁百万级商品爬取 思路讲解 商品爬取
分析3.png
3.2、苏宁百万级商品爬取 思路讲解 商品爬取
分析4.png
上一篇:借助阿里云ECS实现传统.NET应用容器化(上)


下一篇:Centos7下Docker搭建WookTeam轻量级在线团队协作工具(失败)