俞锦鹏第二次作业
第二次作业-通过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抓包时,因为我使用的是校园网,所以导致网络异常终止,然后经过晓佳好兄弟的教导,使用自己开热点使用就可以了。