python爬取饿了么奶茶店外卖数据_饿了么爬虫(二)利用Fiddler进行抓包爬虫

02

Fiddler抓包

在进行后续步骤前,请在电脑上安装Fiddler。

从我们之前的文章中可以确定饿了么的商品信息是通过json文件进行传输的,Json文件名都是sv开始。但是由于这些json文件是动态加载的同时request URL也是没有特定规范的,因此无法通过请求URL获取Json数据。

如果你想了解这些信息的具体确认步骤,请查看这篇文章:https://blog.csdn.net/qq_42692386/article/details/105825085

基于以上分析,我们使用Fiddler抓取Json文件并批量保存,这样就可以获取所有的Json数据并解析了。

具体步骤为:1)首先查看商品信息对应的json文件找到具体的请求URL:

其中第三步需要修改的代码如下:

if (oSession.fullUrl.Contains(“/h5/mtop.venus.shopcategoryservice.getcategorydetail/1.1/sv=3.0.0”)) {oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况var fso;var file;fso = new ActiveXObject(“Scripting.FileSystemObject”);//文件保存路径,可自定义file = fso.OpenTextFile(“C:/Users/Downloads/elm_Response.txt”,8 ,true, true);file.writeLine(“Response code: ” + oSession.responseCode);file.writeLine(“Response body: ” + oSession.GetResponseBodyAsString());file.writeLine(“n”);file.close();}

3)之后重新刷新页面并下拉,点击所有的商品项目分类,确保加载所有的json文件并被filddler抓包。

4)之后就可以在我们之前fiddler脚本中设定的保存位置找到我们的所有数据信息了!

02

数据解析

这一步我们对上一步获取的json数据进行解析。首先查看文件编码

#查看文件编码import chardetpath = r”C:UsersSmileDownloadselm_Response.txt”f = open(path,’rb’)data = f.read()print(chardet.detect(data))

得到编码格式为UTF-16。之后通过python解析下载下来的文件。由于下载的文件格式中包含请求信息,所以需要在解析过程之中对文件进行清理。具体代码为:

for jsondata in jsonlines:if jsondata not in [‘n’,’Response code: 200n’]:jsondata=jsondata.replace(‘Response body: ‘,”)data = json.loads(jsondata)foods_list=data[‘data’][‘data’][0][‘foods’]for detail_info in foods_list_name=detail_info[‘name’]currentprice=detail_info[‘currentPrice’]saleunit=detail_info[‘defaultSaleUnit’]org_price=detail_info[‘originalPrice’]goods_name.append(name)goods_currentprice.append(currentprice)goods_orginalprice.append(org_price)goods_salesunit.append(saleunit)total={}total[‘商品’]=goods_name;total[‘现价’]=goods_currentprice;total[‘原价’]=goods_orginalprice;total[‘售卖单位’]=goods_salesunitdata_final=pd.DataFrame(total)print(data_final)

之后就可以看到我们所需要的信息了

商品 现价 原价 售卖单位0 维尔美纤纯.黄系列纸面巾110抽*12包/提 39.8 份1 洁云绒触感抽取式纸面巾8包/提 24.9 份2 洁云绒触感抽取式纸面巾100抽*(10+2)包/提 39.9 份3 维达超韧颐和园系列抽取式纸面巾100抽*10包/提 52.9 份4 维达棉韧系列三层抽取式纸面巾100抽*18包/提 43.9 份.. … … … …135 阿奇侬铁观音茶味奶盖珍珠雪糕 360克/盒 23 46 份136 阿奇侬珍珠奶茶味雪糕 340克(85克*4)/盒 23 46 份137 迷你可爱多芒果酸奶混合口味冰淇淋200g10支装 15.9 份138 哈根达斯草莓冰淇淋 81克/杯 28.8 34 份139 哈根达斯香草冰淇淋 392克/杯 69 85.7

同理,如果你需要其他的商品信息,例如图片,编码等也可以通过解析Json文件得到。

74c1b1003808eea646ced00fd97b1280.png

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览211741 人正在系统学习中 相关资源:专用的软件解决集墨棉使用寿命已尽-专业指导工具类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月3日
下一篇 2021年1月3日

相关推荐