02.25 爬虫学习十二之案例开发获取搜索页面数据

准备一个定时任务

准备一个运行类

爬虫学习十二之案例开发获取搜索页面数据

将之前封装的HttpClient拿过来,放到一个utils包中

爬虫学习十二之案例开发获取搜索页面数据

编写定时类的定时方法

爬虫学习十二之案例开发获取搜索页面数据

我们在京东中搜索手机,可以看到URL

爬虫学习十二之案例开发获取搜索页面数据

点击下一页,观察URL的变化

爬虫学习十二之案例开发获取搜索页面数据

其中page这个参数,我们发现

Page=1是第一页

Page=3是第二页

Page=5是第三页

这就是页码的判断参数

我们开始编写代码

爬虫学习十二之案例开发获取搜索页面数据

写一个循环,循环页码(8示例数据,学习为主)

爬虫学习十二之案例开发获取搜索页面数据

在开发者工具中查看下页面结构,下面这些就是页面中的商品

爬虫学习十二之案例开发获取搜索页面数据

可以找到sku和spu

爬虫学习十二之案例开发获取搜索页面数据

那我们来抓取这些数据

先准备一个HttpClient

爬虫学习十二之案例开发获取搜索页面数据

搜索页面(这个地方循环的初始值变为1,之前写错了)

爬虫学习十二之案例开发获取搜索页面数据

解析页面

创建一个解析方法,这个方法完成页面解析

爬虫学习十二之案例开发获取搜索页面数据

基本思路是:首先获取spu,然后根据spu获取sku

分析页面先获取这个div,id是goodsList,然后根据这个div找到子元素ul,然后找到li

爬虫学习十二之案例开发获取搜索页面数据

所以获取代码

爬虫学习十二之案例开发获取搜索页面数据

获取spu

爬虫学习十二之案例开发获取搜索页面数据

获取sku

分析页面,找到ps-item

爬虫学习十二之案例开发获取搜索页面数据

所以代码

爬虫学习十二之案例开发获取搜索页面数据

其中sku的值

爬虫学习十二之案例开发获取搜索页面数据

所以代码

爬虫学习十二之案例开发获取搜索页面数据

然后我们将数据保存到数据库中

爬虫学习十二之案例开发获取搜索页面数据

根据sku查询商品数据,如果存在,后续数据就不用查询解析了

爬虫学习十二之案例开发获取搜索页面数据

设置完商品spu,继续解析商品详情url

爬虫学习十二之案例开发获取搜索页面数据

之前我们发现这个是由sku拼接成的

爬虫学习十二之案例开发获取搜索页面数据

代码,完成拼接

爬虫学习十二之案例开发获取搜索页面数据

继续获取商品的图片,这个地方注意,在开发者工具和源代码中看到的不一样,所以代码要经常调试,开发者中是src而源码中是data-lazy-img,我们使用data-lazy-img

爬虫学习十二之案例开发获取搜索页面数据

爬虫学习十二之案例开发获取搜索页面数据

代码

爬虫学习十二之案例开发获取搜索页面数据

其中因为图片大小的问题,需要做一个替换

这个图片很小

爬虫学习十二之案例开发获取搜索页面数据

改成1就可以了

爬虫学习十二之案例开发获取搜索页面数据

所以代码替换下,最后保存图片

爬虫学习十二之案例开发获取搜索页面数据

获取商品的价格

因为价格选中不同的价格不同

爬虫学习十二之案例开发获取搜索页面数据

爬虫学习十二之案例开发获取搜索页面数据

我们调出开发者工具看一下,发现有新的请求

爬虫学习十二之案例开发获取搜索页面数据

所以要重新请求,我们看一下

爬虫学习十二之案例开发获取搜索页面数据

访问下,可以得到数据

爬虫学习十二之案例开发获取搜索页面数据

简化下Url

爬虫学习十二之案例开发获取搜索页面数据

代码实现,获取到Json数据

爬虫学习十二之案例开发获取搜索页面数据

解析Json

爬虫学习十二之案例开发获取搜索页面数据

解析数据

爬虫学习十二之案例开发获取搜索页面数据

获取商品标题,先进入详情页获取标题

爬虫学习十二之案例开发获取搜索页面数据

代码

爬虫学习十二之案例开发获取搜索页面数据

这是获取完页面了,接下来分析里面的内容

爬虫学习十二之案例开发获取搜索页面数据

所以代码

爬虫学习十二之案例开发获取搜索页面数据

设置创建和更新时间

爬虫学习十二之案例开发获取搜索页面数据

终于可以保存了

爬虫学习十二之案例开发获取搜索页面数据

之前忘了补充事务注解了

爬虫学习十二之案例开发获取搜索页面数据

调用方法

爬虫学习十二之案例开发获取搜索页面数据

调试下程序,看是否有错误的地方

发现总是访问不到,显示页面信息

爬虫学习十二之案例开发获取搜索页面数据

所以设置请求头消息User-Agent模拟浏览器

httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0");

爬虫学习十二之案例开发获取搜索页面数据

写错地方

爬虫学习十二之案例开发获取搜索页面数据

爬虫学习十二之案例开发获取搜索页面数据

爬虫学习十二之案例开发获取搜索页面数据

可以获取数据了

爬虫学习十二之案例开发获取搜索页面数据


分享到:


相關文章: