问题2 局部加载
经过问题1“所见非所得”,我们大概对一些套路有了了解,接下取的局部加载也是一个简单的小套路。
这个方式可以这么解释
你所看到的内容其实是一步一步加载出来的,而不是一下子都给你看到的。这是什么意思呢,其实有点问题1种jsonp种每次加载5个数据的意思。而我们现在要将的是商品的局部加载。还是一样的,我们给出几张图来进行说明。
![img_611cbd8ac08243394789fff7ed58483a.png](https://i-blog.csdnimg.cn/blog_migrate/4ac546a45c7c1670133e9205668bbdd1.png)
![img_eb64a1551add13ae53b1b1931a79bf3e.png](https://i-blog.csdnimg.cn/blog_migrate/cfb2b942f268dcb422dbcab75b035885.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是不一样的
![img_7047f617f728b6986ae2426faf84bcc4.png](https://i-blog.csdnimg.cn/blog_migrate/15bf654afaa3059310fe83c4caf50337.png)
![img_5041867b60df7ae94c5f53e1cb65f7fd.png](https://i-blog.csdnimg.cn/blog_migrate/f6a9ea8fec38432c760c9e2c2fa52053.png)
![img_1e652c4bc6415e60db2cf2df8700972a.png](https://i-blog.csdnimg.cn/blog_migrate/534cbc22f9510deb323200c1a4b39285.png)
![img_09fb904671a95540cb6a676036bd08a1.png](https://i-blog.csdnimg.cn/blog_migrate/b54f48349711791eaaf4564f5c341a6b.png)
![img_f09251a1e9a67219c92558537fcad73f.png](https://i-blog.csdnimg.cn/blog_migrate/ff2b96f413b473183bee59050db572e9.png)
![img_6d4a4d00de38b65909285d4ae48f2518.png](https://i-blog.csdnimg.cn/blog_migrate/bf233d07ec74d6373e828886b80c363d.png)