卞祖辉---第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/homework/12532
这个作业的目标 <对朴朴商品爬取解析并培养自学能力>
Github 地址 https://github.com/demian1999/demian1999

一、解题思路:
首先安装Fiddler软件。
通过网上搜寻资料学习如何使用Fiddler软件进行抓取数据,我们通过电脑端微信小程序中朴朴超市进行商品的抓包(找数据比较麻烦)。
将http地址和User-Agent保存下来对之后写代码有用处,通过地址可以在火狐浏览器直观看到商品信息内容。
最后通过idea软件安装Python插件实现代码。
二、实现过程
1.使用Fiddler截获所需信息并提取:

2.使用火狐浏览器打开目标网址(火狐浏览器自带解析成json功能)如下所示:

3.运行idea软件,安装Python插件:

4.部分代码说明,这里的商品信息在前面的火狐浏览器json展示中的data目录下可以找到。
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()
五,上传github

六、总结
这次作业在一开始就遇到了很多的问题,自己没有学习过python语言所以做起来会很吃力,自己也要通过网页上的资料进行自己摸索与学习,好在通过自己不断的不懈努力,掌握了一点皮毛,达到可以完成此次作业的要求,在今后的日子里我会更加努力的学习,争取每次都能按照要求完成作业

posted @ 2022-03-21 00:15    阅读(86)  评论(6编辑  收藏  举报