第二次作业——个人编程
这个作业属于哪个课程 | 至诚软工实践F班 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/homework/12532 |
这个作业的目标 | <初步了解fiddler抓包工具> |
Gitee 地址 | https://gitee.com/khh_g/demo.git |
一、使用 fiddler 抓包工具+代码,实时监控朴朴上某产品的详细价格信息
1.项目思路
第一次接触,完全没有思绪,什么是 fiddler 抓包工具都不清楚。云班课上看了老师给的资料,先下载安装了Fiddler工具。请教了伟强同学,一步步完成。
2实现过程
没学过python,所以我选择了用java来完成。
1.获取json文件接口:https://j1.pupuapi.com/client/product/storeproduct/detail/cdc72307-1d48-4dd9-b83f-bc0edf408f02/b76c4315-17ba-4a66-9772-089e0db8e6f1
2.新建项目
3.java项目导入jsoup包
4.新建test类,包含主要实现方法
点击查看代码
package com.example.demo;
import com.google.gson.Gson;
import com.google.gson.internal.LinkedTreeMap;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.HashMap;
public class test {
LinkedTreeMap data ;
String name; //定义商品名
String spec; //定义商品规格
Double price; //定义商品价格
Double market_price; //定义商品原价
String content; //定义商品详细信息
public void parsePuPu() throws IOException {
//定义接口链接
String url="https://j1.pupuapi.com/client/product/storeproduct/detail/7c1208da-907a-4391-9901-35a60096a3f9/b3fc4708-3f1d-412a-8d18-efc4b6951fa7";
Connection.Response res = Jsoup.connect(url)
.header("Accept", "*/*")
.header("Accept-Encoding", "gzip, deflate")
.header("Accept-Language","zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3")
.header("Content-Type", "application/json;charset=UTF-8")
.timeout(1000).ignoreContentType(true).execute();
//创建gson对象
Gson gson = new Gson();
//对获取到的数据进行转换
HashMap hashMap = gson.fromJson(res.body(), HashMap.class);
//获取data里面的值
data = (LinkedTreeMap) hashMap.get("data");
/* 获取对应数据 */
name= (String) data.get("name");
spec=(String) data.get("spec");
price=(Double) data.get("price")/100;
market_price=(Double) data.get("market_price")/100;
content=(String) data.get("share_content");
}
public void refresh() throws IOException, InterruptedException {
//每3秒抓取一次商品信息
while (true){
parsePuPu();
System.out.println("当前时间为"+ LocalDateTime.now()+" ,"+name+":价格为"+price);
Thread.sleep(3000);
}
}
public void show() throws InterruptedException, IOException {
parsePuPu();
//打印
System.out.println("-----------------------商品:"+name+"-----------------------");
System.out.println("规格:"+spec);
System.out.println("价格:"+price);
System.out.println("原价/折扣价:"+market_price+"/"+price);
System.out.println("详细信息:"+content);
System.out.println("--------------------"+name+"的价格波动--------------------");
refresh();
}
}
5.运行结果
6.上传到gitee,commit
3遇到的问题
1连接超时
多跑几次之后就变成这样,还没解决。