SpringBoot使用爬虫(初级阶段)

SpringBoot使用爬虫(初级阶段)

springboot使用爬虫

首先需要在引导类上加上@EnableScheduling注解

在这里插入图片描述
然后,建立一个task包

在这里插入图片描述

在task包内,新建一个类,并且将这个类加入到spring的applicationContent中。归属spring去管理

在这里插入图片描述

然后,建立方法,并且在方法上指定注解@Scheduled(fixedDelay = 3600 * 1000)

在这里插入图片描述

这个注解的意思是每隔多长时间执行一回,默认为-1,即只执行一次

在这里插入图片描述

通过访问url实现图片的下载

/**
     * 图片下载
     *
     * @param imgUrl 图片的地址url
     */
public static void storeImage(String imgUrl) {
    HttpEntity httpEntity = HttpUtils.sendTheRequest(imgUrl);
    if (httpEntity != HttpUtils.BAD_RESPONSE) {
        // 获取图片后缀名称
        String extendName = StringUtils.substringAfterLast(imgUrl, ".");

        // 得到文件输出流
        OutputStream outputStream = null;
        try {
            outputStream = new FileOutputStream("C:\\Users\\LightingSui\\Desktop\\jd\\"
                                                + UUID.randomUUID().toString() + "." + extendName);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        // 写出文件
        try {
            httpEntity.writeTo(outputStream);
            System.out.println("图片保存成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    }

图片的下载使用的是HttpEntity方法中writeTo函数,该函数接收的是一个字节流,传给相应的字节流即可实现保存图片到指定位置。

Jackson的另一种用法

例如有如下json

handleComboCallback(
{
accessories: {
status: 200,
data: {
wName: "三星 Galaxy A90 5G(SM-A9080)全息黑 疾速5G 骁龙855 8GB+128GB 全息3D格纹设计 双卡双待手机",
wid: 100005158409,
imageUrl: "jfs/t1/98197/15/214/99252/5da97650Ef1b6b3a7/528cc8b3f9ade84b.jpg",
chBrand: "三星",
model: "Galaxy A90",
list: [
{
accessoryShows: [
{
wName: "【2片装】惠舟 三星A90钢化膜Galaxy A9080护眼抗蓝光5G版全透明水凝防爆玻璃手机贴膜 全透明升级抗蓝光*2片装",
wid: 59582128732,
imageUrl: "jfs/t1/72853/15/13535/161071/5dab08f2Ef209d10a/3f0d7d83f3070fcb.jpg",
wMeprice: 69,
wMaprice: 19.8
},
{
wName: "【2片装】骆尊 三星A90钢化膜Galaxy A90 5G抗蓝光高清防指纹防爆玻璃手机贴膜 全透明(增强防指纹版)2片装",
wid: 59547480132,
imageUrl: "jfs/t1/70349/29/13300/200424/5daabd58E07d63905/b69255eaa091e00f.jpg",
wMeprice: 68,
wMaprice: 9.8
},
],
typeName: "充电器",
typeId: 12
}
],
wMeprice: 9999,
wMaprice: 4499
}
}
}
)

想要获得wMaprice,那么就可以使用Jackson中的方法

money = new ObjectMapper().readTree(money).get("accessories").get("data").get("wMaprice").toString();

即可获得。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值