之前我们通过保存网页HTML代码的方法对饿了么商品进行爬虫。但是这种方法比较复杂,需要保存非常多的html文件。具体文章可以参阅:http://smilecoc.vip/2020/09/26/%E9%A5%BF%E4%BA%86%E4%B9%88%E7%88%AC%E8%99%ABhtml%E6%96%B9%E6%B3%95/

这一次我们使用Fiddlerr进行抓包爬取商品数据。相关代码,文件请关注公众号:Romi的杂货铺回复饿了么Fiddler爬虫获取

Fiddler简介

Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大

Fiddler的工作原理可以用下图来解释:

因此我们通过fiddler抓取服务器返回的数据并保存到本地即可

Fiddler抓包

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

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

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

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

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

查看所有的Json文件可以发现所有的数据json文件请求 URL都包含/h5/mtop.venus.shopcategoryservice.getcategorydetail/1.1/?jsv=3.0.0
2)修改fiddler脚本并保存,使fiddler自动保存特定的数据。具体过程如下:

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

        if  (oSession.fullUrl.Contains("/h5/mtop.venus.shopcategoryservice.getcategorydetail/1.1/?jsv=3.0.0")) {oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况var fso;var file;fso = new ActiveXObject("Scripting.FileSystemObject");//文件保存路径,可自定义file = fso.OpenTextFile("C:/Users/Smile/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脚本中设定的保存位置找到我们的所有数据信息了!

数据解析

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

#查看文件编码
import chardet
path = r"C:\Users\Smile\Downloads\elm_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: 200\n']: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_salesunit
data_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文件得到。

相关代码,文件请关注公众号:Smilecoc的杂货铺 回复饿了么Fiddler爬虫获取

饿了么爬虫(二)利用Fiddler进行抓包爬虫相关推荐

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

    02 - Fiddler抓包 在进行后续步骤前,请在电脑上安装Fiddler. 从我们之前的文章中可以确定饿了么的商品信息是通过json文件进行传输的,Json文件名都是?jsv开始.但是由于这些js ...

  2. 利用Fiddler手机抓包对ONE·APP网页爬虫实现电影资讯微信Java开发

    前言 好久没写博客了,打算把之前做的一个电影评分资讯推送的微信开发全程记录一下,适合对网络爬虫.微信开发感兴趣的童鞋.在教程开始之前,我想先引出两个问题(这次写博客假装很有条理的样子= =) 1. 为 ...

  3. 利用Fiddler手机抓包对ONE APP网页爬虫实现电影资讯微信Java开发

    前言 好久没写博客了,打算把之前做的一个电影评分资讯推送的微信开发全程记录一下,适合对网络爬虫.微信开发感兴趣的童鞋.在教程开始之前,我想先引出两个问题(这次写博客假装很有条理的样子= =) 1. 为 ...

  4. Fiddler(二) - 使用Fiddler做抓包分析

    文章目录 一.前言 二.抓包分析 三.指标分析 3.1 Statistic 3.2 Inspectors 3.3 AutoResponder 3.4 Composer 3.5 Filter 一.前言 ...

  5. fiddler手机抓包配置方法

    一.下载工具包 百度搜索"fiddler 下载" ,安装最新版本 下载的软件安装包为"fiddler_4.6.20171.26113_setup.exe"格式, ...

  6. 【HTTP】Fiddler(二) - 使用Fiddler做抓包分析

    上文( http://blog.csdn.net/ohmygirl/article/details/17846199 )中已经介绍了Fiddler的原理和软件界面.本文主要针对Fiddler的抓包处理 ...

  7. fiddler,他和其他抓包软件有什么区别,如何使用fiddler进行抓包

    前言:本文章是搭配<批量获取微信公众号>一文,介于群里朋友很热情,我就趁着上班测完bug 来撰写该文章,那么读完本文,你会学习到什么呢? 什么是fiddler,他和其他抓包软件有什么区别, ...

  8. 使用Fiddler手机抓包https-----重要

    Fiddler不仅可以对手机进行抓包,还可以抓取别的电脑的请求包,今天就想讲一讲使用Fiddler手机抓包! 使用Fiddler手机抓包有两个条件: 一:手机连的网络或WiFi必须和电脑(使用fidd ...

  9. 【转】用Fiddler做抓包分析详解

    1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包 ...

最新文章

  1. 使用kubernetes的deployment进行RollingUpdate
  2. java之图形化界面(GUI)
  3. idea(一)使用详解
  4. 漂亮的页面向导和Tab插件(Jquery)
  5. 为TFS配置跨平台的生成服务器Xplat (Ubuntu Linux)
  6. 每天五分钟,玩转Docker。-Day2
  7. Vim中根据正则对选中文本对齐(比如ini文件的=号对齐)
  8. 人工智能、机器学习、深度学习的关系,终于有人讲明白了
  9. 互联网欺诈,金钱利益下的汩汩恶意
  10. 【生信进阶练习1000days】day14-GenomicDataCommons(GDC)
  11. 总结——pandas/numpy处理数据中文手册速查
  12. 老婆怀孕记录以及如何照顾老婆总结
  13. 计算机怎么知道用户名和密码,电脑的用户名和密码怎么查看
  14. java svg png_java batik svg转png报错,球大神!!!在线等
  15. 在VSCode终端中安装Gulp包出现 * package is looking for funding run `npm fund..和无法加载文件,在此系统上禁止运行脚本的错误提示一步到位解决
  16. 毕设 JAVA.JSP网上学习答疑系统论文
  17. 基于STM32的智能车/平衡小车/蓝牙小车
  18. Java实现根据URL下载图片到本地
  19. 实现一个简单的语音聊天室(源码)
  20. 前端面试合集(更新中……)

热门文章

  1. 微信小程序云函数构建npm,找不到node_modules以及后续出现上传所有文件,并没有上传node_modules的文件问题
  2. 驴妈妈旅游网技术架构发展
  3. MySQL——homework01
  4. 让你知道兔子吃什么?
  5. Freeswitch 录音配置
  6. 如何快速处理企业邮箱退信问题?
  7. upupw mysql崩溃_安装UPUPW后出现SQL语句运行错误解决办法
  8. 计算机硬盘ssd,让您的电脑飞起来 教你如何正确使用SSD
  9. 点燃经济增长新引擎 张近东为拉动消费支招
  10. phpems用户名是什么_利用PHPEMS搭建在线考试平台(一)