Fork me on GitHub

第二次作业——个人编程

这个作业属于哪个课程 至诚软工实践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连接超时


多跑几次之后就变成这样,还没解决。

posted @ 2022-03-19 17:18  Orange8  阅读(36)  评论(0编辑  收藏  举报