郑锋云---第二次作业
这个作业属于哪个课程 | 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工具。遇到了很多问题,比如说软件不懂得配置,代码看不懂,不知道怎么编写。我就去上哔哩哔哩观看教学视频,遇到不会的,我尽量自己思考,同学们也给予了我很大的帮助,感谢同学们为我细心的指导!辛苦了!但是目前只能做出基础任务,之后有能力的话,会将进阶和高阶诸葛完善。万事开头难,我相信在之后的学习中,我依然能认真完成作业,提高自学能力,争取学习道更多的专业知识。