郑锋云---第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/homework/12532
这个作业的目标 < 培养良好编码习惯,并通过抓包工具分析post、get协议,并模拟请取数据对进行json解析>
Gitee 地址 https://gitee.com/zhengfengyun939/secondwork.git

任务:使用Pyhton语言+Fiddler开发工具,对朴朴商品价格的实时监控:

一、解题思路:

  • 1、 安装Fiddler软件。
  • 2、由于电脑系统的原因,无法正常安装Python与PYcharm软件,所以我使用idea软件进行开发,我安装完软件之后,下载了Python开发环境,用PYthon语言进行开发。
  • 3、启动Fiddler软件之后,我发现我不懂得配置,所以我参照老师提供的PPT与哔哩哔哩上相关的教学视频,对Fiddler进行配置。特别注意的是,要将HTTPS选项卡中的将捕获HTTPS连接这一项前面全打上勾(这点尤为重要)。
  • 4、通过微信启动朴朴小程序,点开Fiddler进行数据抓取。由于我是第一次使用Fiddler,我将上面显示朴朴链接的数据一个一个点开找,最后找到一条里头包含着请求头和商品信息的数据,这个就是我们所需要的JSON数据了。
  • 5、我将这个目标位网址复制下来,用火狐浏览器打开,因为火狐浏览器自带JSON解析,可以很直观的看到商品的信息。
  • 6、最后通过idea软件,编写代码,由于我重来没有学习过Python语言,这个过程确实让我很头疼,我请教了很多同学,还去上网学习了相关视频三四天,最后在努力下,写出了代码,最终输出了我想要得到的内容。

二、实现过程:

  • 1、对Fiddler进行基本配置:

  • 2、打开微信朴朴小程序:

  • 3、通过Fiddler对微信朴朴小程序进行抓取数据:

  • 4、通过火狐浏览器打开目标网址,进行JSON解析:

  • 5、运用idea软件,并下载PYthon环境:

  • 6、部分代码展示:

  • (1)目标地址与请求头代码展示

        # 目标网址
        url = "https://j1.pupuapi.com/client/product/storeproduct/detail/" + productId
        # 请求头
        head = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
        }
        # 运行程序
        if __name__ == '__main__':
        productId = "deef1dd8-65ee-46bc-9e18-8cf1478a67e9/2a89a557-ff99-481d-a1a5-75098417c956"
        pupuMessage(productId)
        now_price(productId)
  • (2)goods商品各个信息
        # 发送请求
        res = requests.get(url, headers=head)
        goods = json.loads(res.text)

        # 商品名称
        name = goods['data']['name']

        # 商品价格
        spec = goods['data']['spec']

        # 商品当前价格
        price = goods['data']['price']
        price = str(int(price) / 100)

        # 得到商品市场价格
        market_price = goods['data']['market_price']
        market_price = str(int(market_price) / 100)
  • (3)显示商品所有的详情信息赛马展示
 # 显示商品所有的详细信息
        share_content = goods['data']['share_content']
        print("--------------" + name + "----------")
        print("规格:" + spec)
        print("价格:" + price)
        print("原价/折扣价:" + market_price + "/" + price)
        print("详细内容:" + share_content)
        print("\n\n--------------" + name + "的价格波动----------")
  • (4)显示折扣价格,并用sleep方法来实现时间间隔,时间间隔2秒
        #折扣价格
        price = str(int(price) / 100)

        nowTimeAndPrint = strftime('%Y' + '-' + '%m' + '-' + '%d' + ' %H:%M,价格为' + price)
        print(nowTimeAndPrint)
        # 用sleep方法来实现时间间隔,时间间隔2秒
        sleep(2)
  • 7、输出结果展示:

三、Gitee仓库:

  • 在idea中下载Gitee插件
  • 安装git.exe文件
  • 登录Gitee账号
  • 在idea上创建Gitee仓库
  • Gitee仓库展示,并且commit5次

四、遇到的难题:

  • 之前看了一些教学视频,是用手机端进行抓包,然后我根据视频下载了夜神模拟器,但是发现一直连接不上,有诸多原因吧,比如说证书无法识别、网关不懂得配置等等问题,我去CSDN搜索了资料,看了之后发现比较难,之后问了同学,同学告诉我可以用微信小程序直接进入朴朴,最终选择了用微信小程序来抓包,这样省去了不少麻烦的步骤。
  • python代码不懂得编写,因为我之前在大专时期,没有学习过python语言,整个项目我在这块花费的时间最多,我看了很多教学视频进行自学,也询问了同学代码如何编写。因为我本身专业水平这块是比较薄弱的,所以这块比较吃力。代码这块比如说类的使用等等,也学习了很长时间,参照同学的代码加以理解,自我总结。最后将代码功能实现,输出我想要的结果。

五、优化改进:

  • 优化改进这块,我不懂得怎么实现,但是我有个想法,就是我觉得监控商品价格,我们可以不止监控一个商品价格,可以监控多个,但是我目前为止没有想出应该用什么方法来实现。等之后的学习中,我加强了我的python水平,可以加以改进。

六、总结:

  • 本次作业,我学习到了Fiddler抓包工具的使用,初步学习了Python。这都是我第一次接触,这次作业对于我来说难度还是比较大的,我没有接触过Python语言,也是第一次使用fiddler工具。遇到了很多问题,比如说软件不懂得配置,代码看不懂,不知道怎么编写。我就去上哔哩哔哩观看教学视频,遇到不会的,我尽量自己思考,同学们也给予了我很大的帮助,感谢同学们为我细心的指导!辛苦了!但是目前只能做出基础任务,之后有能力的话,会将进阶和高阶诸葛完善。万事开头难,我相信在之后的学习中,我依然能认真完成作业,提高自学能力,争取学习道更多的专业知识。
posted @ 2022-03-18 19:54  郑939  阅读(76)  评论(7编辑  收藏  举报