吴迪第二次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/homework/12532 |
这个作业的目标 | <学习Fiddler抓包技术,锻炼面对陌生软件的学习能力> |
Github 地址 | https://github.com/Wd0926/212106737.git |
任务:使用idea中Pyhton语言插件+Fiddler开发工具,对朴朴商品价格的实时监控
一、解题思路:
- 首先安装Fiddler软件。
- 通过网上搜寻资料学习如何使用Fiddler软件进行抓取数据,我们通过电脑端微信小程序中朴朴超市进行商品的抓包(找数据比较麻烦)。
- 将http地址和User-Agent保存下来对之后写代码有用处,通过地址可以在火狐浏览器直观看到商品信息内容。
- 最后通过idea软件安装Python插件实现代码。
二、实现过程:
-
对Fiddler进行基本配置:
-
打开微信中朴朴小程序随便点开一个商品进行抓取数据:
-
通过火狐浏览器打开刚刚抓包的地址进行解析:
-
运行idea软件,安装Python插件:
-
代码实现:
def request_url():
url = 'https://j1.pupuapi.com/client/product/storeproduct/detail/deef1dd8-65ee-46bc-9e18-8cf1478a67e9/1e7fa5d4-67b6-40bf-a96b-06d1a9ef5717'
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'
}
res = requests.get(url, headers=head)
dict1 = json.loads(res.text)
# 商品名字
name = dict1["data"]["name"]
# 规格
spec = dict1["data"]["spec"]
# 价格
price = str(int(dict1["data"]["price"]) / 100)
# 原价
market_price = str(int(dict1["data"]["market_price"]) / 100)
# 详细内容
share_content = dict1["data"]["share_content"]
print("-------------商品:" + name + "-------------")
print("规格:" + spec)
print("原价:" + price)
print("原价/折扣价:" + price + "/" + market_price)
print("详细内容:" + share_content)
# 获取时间
def time():
url = 'https://j1.pupuapi.com/client/product/storeproduct/detail/deef1dd8-65ee-46bc-9e18-8cf1478a67e9/1e7fa5d4-67b6-40bf-a96b-06d1a9ef5717'
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'
}
res = requests.get(url, headers=head)
dict1 = json.loads(res.text)
# 商品名字
name = dict1["data"]["name"]
# 价格
price = str(int(dict1["data"]["price"]) / 100)
print("-------------" + name +"的价格变动"+ "-------------")
#终止程序时,不会报错
try:
while (True):
nowTimeAndPrint = strftime('%Y' + '-' + '%m' + '-' + '%d' + ' %H:%M:%S,价格为' + price)
print(nowTimeAndPrint)
sleep(5)
except:
print("程序结束")
#主函数
if __name__ == '__main__':
request_url()
print("\n")
time()
7.效果展示:
三、GitHub提交:
- git代码:
2.GitHub仓库:
四、总结:
- 本次作业让我对这门课有了一个完全新的认知,首先你得了解理清思路该从哪些方面入手,对于陌生软件以及一些没有接触过的知识需要自主的去学习这可能会要花费比较多的时间。这次作业对我来说难度还是有点大的,做起来比较吃力只能完成基础部分的内容。比如说之前根本没有接触过Python语言和如何使用Fiddler抓包,这些都是要自学;代码方面也是从网上找的资料视屏学习只是浅浅的了解了一点,幸亏网络发达加上同学们互帮互助才能勉强完成;这也让我深刻意识到自己的知识是不够的,万事开头难,在每一次磨练中提高自己,学会如何学习是一门技巧,我相信只有通过自己的不断努力自己的知识储备会越来越多!加油!!!