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();
即可获得。