这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/ |
这个作业的目标 | <学习使用fiddler抓取数据> |
gitee 地址 | https://gitee.com/zane-kui/pupu.git |
【必做】基础:使用 fiddler 抓包工具+代码,实时监控朴朴上某产品的详细价格信息
解题思路
1.学习使用fiddler抓包
2.软件环境搭建
3.学习使用python语言编写抓包数据获取代码
实现过程
可以使用fiddler爬取手机端的朴朴超市商品,证书安装及配置过程这里就不赘述了。请看Fiddler配置及使用教程
也可以使用PC端微信小程序打开朴朴超市获取数据。这里选择使用pc端的微信小程序更便捷。
- 打开fiddler对商品进行获取URL。
- 将得到的URL通过浏览器打开可获得原始数据这里有我们所需要的关键信息
- 通过火狐浏览器可以直接将原始数据转换为JSON格式,更直观的看到获取的信息。
- 商品信息获取完成,这里使用IDEA进行python编程,在IDEA中安装python插件
- 创建python工程,选择python SDK,没有此SDK的可直接选择Add。
部分代码说明
这里的商品信息在前面的火狐浏览器json展示中的data目录下可以找到。
#添加请求头
url = "https://j1.pupuapi.com/client/product/storeproduct/detail/deef1dd8-65ee-46bc-9e18-8cf1478a67e9/5eab5eeb-c405-4f88-9873-497426e2a1f3"
header = {
"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"
}
#获取商品信息
name = json1["data"]["name"] # 商品名字
spec = json1["data"]["spec"] # 规格
price = str(int(json1["data"]["price"]) / 100) # 折扣价
market_price = str(int(json1["data"]["market_price"]) / 100) # 原价
share_content = json1["data"]["share_content"] # 详细内容
print("-------------商品:" + name + "-------------")
print("规格:" + spec)
print("原价:" + price)
print("原价/折扣价:" + price + "/" + market_price)
print("详细内容:" + share_content)
- 运行结果
这里设置了10秒的延时,每10秒获取一次信息。
Gitee提交
- 在IDEA中使用git提交代码到Gitee仓库(具体使用idea上传文件到Gitee流程请看
IDEA连接Gitee
)
Gitee仓库展示
总结
本次的作业布置很有意思,也很感兴趣,对爬虫有过了解但还是有点陌生,Fiddler是目前最常用的http抓包工具之一,功能非常强大,使用起来也很便捷。但是对数据获取的代码无从下手,虽然在上学期以及这学期有在教授java,但是使用java编写爬虫程序有些许繁杂,最后选择使用python编写(因为python有各种爬虫框架,能更方便高效的下载网页,多线程、进程模型成熟稳定),在完成作业的过程中全程自学以及请教了多位同学也查询了很多资料,看了一些教学视频,在这过程中环境配置以及调试耗费时间比较多,通过网上查找以及请教同学最终解决问题,在与同学的互相交流中也得到了提升。对于进阶和高阶作业,待自己学习更多相关的知识能更熟练的应用后再进行完成。