俞锦鹏第二次作业

第二次作业-通过Fiddle分析抓包相关数据,基于Python开发实现数据的展现批量导入本地

这个作业属于哪个课程 首页 - 至诚软工实践F班 - 福州大学至诚学院 - 班级博客 - 博客园 (cnblogs.com)
这个作业要求在哪里 第二次作业:个人编程 - 作业 - 至诚软工实践F班 - 班级博客 - 博客园 (cnblogs.com)
这个作业的目标 了解爬虫的运行方法
Github 地址 俞锦鹏12/212106744 (gitee.com)

一、Fiddler抓包步骤

1、根据ppt文件,配置好Fiddler里面的内容

2、启动扑扑App对搜索栏搜索后请求到数据进行 抓包分析

3、分析请求返回的数据对其进行 Json解析并记录相关数据,方便后面的数据分析截图如下:

4、分析头部文件截图如下:

二、基于Pyhton开发的扑扑商品波动监控

1、语言选择

经过网络查找,大致有两种方法可以进行爬虫(java和python)由于自己Java学的并不是很好,然后网络上的学习资料大都是用python爬虫,所以最后还是选择了python来完成此次作业

2、前期准备

学习的话,主要是通过csdn和哔哩哔哩来学习python。然后中间碰到了许多问题,大部分是自己上网查找,后面一些比较难的问题都是和晓佳同学请教的。

3、编程代码如下

import random
import requests
import urllib3
import json
import datetime
import time

# 用Fiddler爬取用户代理和商品地址
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
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/820f7c01-a9fe-4d3a-851e-ae3be0db8444'


# 根据url申请请求头
def getPupu():
    # 设计获取价格波动时间

    result = requests.get(url, headers=headers, verify=False)
    return result
    randoms=random.randint(2,6)
    time.sleep(randoms)


# 运用json方法解析字典
result = getPupu()
print(result.text)
s = json.loads(result.text)
PuPuNo = s['data']['name']
PuPuSpec = s['data']['spec']
PuPuPrice = s['data']['price']/100
market_price = s['data']['market_price']/100
title = s['data']['share_content']
print(PuPuNo,PuPuSpec,PuPuPrice,market_price)
# 输出商品规格
print("-------------------商品: "+PuPuNo+"-------------------------------")
print("规格: "+PuPuSpec)
print("价格: "+str(PuPuPrice))
print("原价/折扣价: "+str(market_price)+"/"+str(PuPuPrice) )
# print("详细内容: "+title)
print("-------------------------商品: "+PuPuNo+"的价格波动--------------------------------")


# 运用while()循环实现价格波动
if __name__ == '__main__':
    while (1):
        result = getPupu()
        PuPuPrice = s['data']['price']
        timee = str(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
        print("当前时间为" +timee+ ", 价格为" + str(PuPuPrice/100))
        #设置自动获取间隔3秒
        time.sleep(3)

三、上传gitee

1、上传截图:

2、仓库截图:

四、遇到的问题:

1、python软件没有项目模块,是因为我项目创建的时候和安装的路径不一致,然后没有进行连接导致的。

2、程序运行过快,倒是程序意外终止,后面加了个时间间隔sleep方法设置程序间隔3秒一次,就成功了。

3、使用Fiddler抓包时,因为我使用的是校园网,所以导致网络异常终止,然后经过晓佳好兄弟的教导,使用自己开热点使用就可以了。

posted @ 2022-03-20 19:14  mk12  阅读(92)  评论(0编辑  收藏  举报