鲍国锴---第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/homework/12532
这个作业的目标 <从朴朴上爬取需要的数据,面对陌生的语言和软件能够有学习能力>
Github 地址 https://github.com/Heyyy-Kong/Fiddler.git

基础题

成果展示:

代码:

import time

import requests


class Pupu():
    # 伪装自己,冒充成微信小程序
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat'
    }
    # 需要访问的地址
    url = 'https://j1.pupuapi.com/client/product/storeproduct/detail/deef1dd8-65ee-46bc-9e18-8cf1478a67e9/ed60af11-25b0-48b8-bc5b-f9136d9f89ad'
    
    # 从url中得到json数据
    response = requests.get(url, headers=headers).json()

    def printContent(self):
        # 从json中获取需要的数据
        data = self.response['data']
        specification = data['spec']
        price = data['price'] / 100
        discount_price = data['market_price'] / 100
        describtion = data['share_content']
        product = data['share_title']
        print('--------------------商品:' + product + '--------------------')
        print('规格:' + specification)
        print('价格: ' + str(price))
        print('折扣价/原价: ' + str(price) + "/" + str(discount_price))
        print('详细内容:' + describtion)
        print('--------------------"' + product + '"的价格波动--------------------')

        # 间隔一秒钟获取当前商品的价格
        for content in range(6):
            print('当前时间为' + time.strftime("%Y-%m-%d %H:%M", time.localtime()) + '价格为' + str(price))
            time.sleep(1)


if __name__ == '__main__':
    pupu = Pupu()
    pupu.printContent()

一:解题思路描述

1. 了解fiddler是什么软件,它的主要功能,以及如何使用

2. 一直听说python在爬取数据上有很大优势,所以语言方面选择在B站自学python

3. 通过fiddler监听朴朴的数据,然后通过python爬取信息,再通过json使用键值对得到需要的数据

二:设计实现过程

1. 安装信任证书,通过fiddler监听朴朴的数据(这里选择使用电脑端的微信小程序,不用在手机上额外安装证书)

2. 从fiddler得到所需商品的URL,通过更改User-Agent伪装自己是微信小程序,然后爬取信息

3. 通过json使用键值对得到需要的数据

4. 通过time.sleep()方法间隔一段时间重新获取数据,达到监听的效果

# 间隔一秒钟获取当前商品的价格
        for content in range(6):
            print('当前时间为' + time.strftime("%Y-%m-%d %H:%M", time.localtime()) + '价格为' + str(price))
            time.sleep(1)

三:优化改进

1. 一开始并不清楚python的语法格式,直接把代码写在.py文件中.单纯实现一个功能还好,要是功能多了这种写法就很不健康.优化后把代码写进类中,通过函数调用来实现功能

小结:不论是在学校还是以后的工作中,总会遇到特殊的需求,陌生的软件,要有自主学习的能力,和一个良好的心态

posted @ 2022-03-17 18:20  Heyyy-Kong  阅读(65)  评论(0编辑  收藏  举报