爬虫实战----美团外卖商家数据接口分析
来源:互联网 发布:实况足球数据网站 编辑:程序博客网 时间:2024/04/26 09:23
本文发表于2017年11月6号,不保证其在之后的时间仍适用,只作例子分享
准备工作
- 抓包工具:Fiddler,Firebug等工具,此文使用Chrome浏览器自带的抓包工具
- 模拟提交工具:参数化Http请求 详情见基于C#的Http参数化请求工具
接口分析(从H5端入手)
首先进入美团外卖h5的商家列表页
示例地址:http://i.waimai.meituan.com/home?lat=37.434075&lng=122.196679
从地址格式中可以看到 参数此链接有两个参数 分别是lat 纬度 lng经度
按F12打开Chrome的调试工具,回到页面,将页面下拉,触发加载店铺列表的ajax请求,如图
分析请求信息
标记的内容是后续将要用到的信息,cookie中需要包含经纬度信息,通过观察可以发现,小数点被抹平,并且纬度保持在8位,经度保持在9位。referer就是示例地址(见上文)。查询字符串中,有用的参数也是经纬度信息(别去管_token)。请求体中page_index参数表示请求的页数索引。
分析返回内容
将此请求拿到的json格式化(直接粘贴到json.cn):如图
这个包可以得到店铺列表中所有店铺的概况信息,包括起送价,配送费等,poilist对象数组就是店铺列表所在,记录下id字段,后续将用到
模拟提交测试
注意此处使用C#的HttpWebRequest类进行提交时,应该将Http版本修改为1.1,并且设置Expect100Continue为false
采集店铺详细信息
返回到页面,点击进入一家店铺,首先查看链接格式http://i.waimai.meituan.com/restaurant/ + “id” 其中id就是上一步中记录的id字段(这个Id是基于一定的算法生成的,在网页端中有效期为2小时左右,h5中本人未作测试)
同样使用调试工具抓到这个包
格式化此接口返回的数据,可以看到店铺详情
上面的接口没有店铺的证件信息
证件地址
模拟提交
总结
分析下来可以看到所有用到的接口都和经纬度挂钩,其中Url中的经纬度和Cookie中的不一样。C#的Http请求是一个坑(FrameWork 4.0),这几个接口中使用默认的1.0版本的Http版本将无法正确获得数据(但是带上token值可以获取一次,苏飞的Httphelper框架默认使用了1.1版本所以直接能用)
附上Http版本和Expect100Continue设置方法
首先引用名空间
using System.Net;
设置
#region Request创建 WebRequest webRequest = null; try { //创建一个WebRequest webRequest = WebRequest.Create(RequestUrl); } catch { Console.WriteLine("初始化Request出错:{0}", RequestUrl); return null; }#endregion //强制转化为HttpWebRequest var Request = webRequest as HttpWebRequest; //设置100Continue行为 Request.ServicePoint.Expect100Continue = true; //设置HttpVersion Request.ProtocolVersion = HttpVersion.Version11;
题外话
想知道token值怎么得到的朋友见另一篇博客C#中CefSharp的简单使用
此处点到为止
本文更新于2017年11月6号
- 爬虫实战----美团外卖商家数据接口分析
- 如何使用爬虫采集美团外卖商家信息
- 外卖订单爬虫 定时自动抓取三大外卖平台上商家订单(美团,饿了么,百度外卖)
- 美团外卖支付过程分析
- 美团外卖、饿了么竞品分析
- 爬虫抓取美团网上所有商家信息
- 外卖产品(饿了么、美团外卖、百度外卖)竞品分析
- 美团外卖手机网页版数据加密解析
- 美团商家分类菜单
- 美团外卖小程序
- 美团外卖小程序
- 美团CODEM 送外卖
- 爬虫抓取糯米网上所有商家数据
- 使用python抓取美团商家信息
- 类似淘宝、美团外卖等app首页 Demo分析 tableView+collectionView
- 美团外卖&饿了么竞品分析:共生存?还是你死我亡?
- 干货:O2O美团外卖四部曲
- 【美团】外卖配送事业部面试
- 【BZOJ3379】【USACO2004】交作业 区间DP
- WEB-INF目录防止通过URL直接访问
- 算法之路
- C++Primer第三章习题(2)
- 设计模式——适配器模式
- 爬虫实战----美团外卖商家数据接口分析
- cas client web.xml配置错误
- 【缓存】-浏览器缓存机制
- java web 后台树形菜单排序
- Linux 基础操作(十六)————存储设备的管理、挂载、磁盘分区
- 使用PostMan发送报文
- HTC VIVE开发笔记(四)Interaction System插件手柄交互基础
- SpringMvc在SpringBoot环境和Web环境中上下文的关系
- Echarts2.27树图和Handler.aspx结合