美团店铺数据抓取 token解析与生成
美团、点评网的token都是用一套加密算法,实际上就是个gzip压缩算法。加密了2次,第一次是加密了个sign值,然后把sign值带进去参数中进行第二次加密,最后得出token
- 分析请求
打开上海美食, Network 抓包看一下,可以看到一个请求: getPoiList?cityName=XXXXX, 其中返回的就是我们想要的数据
我们打开这个请求看一下, 都有哪些参数
其中, uuid 和 _token是我们需要注意的
我们全局搜索一下 uuid 的值 , 发现uuid 就在我们当前页面返回的结果中, 我们可以直接拿来用
_token 参数 是经过加密后的结果, 是有时效性的, 所以接下来我们要解析它
2.解析Token
美团token的加密算法比较简单,
- 加密: 二进制压缩, base64编码
- 解密: base64解码, 二进制解压
定义解析token的方法
def decode_token(token):
# base64解码
token_decode = base64.b64decode(token.encode())
# 二进制解压
token_string = zlib.decompress(token_decode)
return token_string
然后获取美团的token,调用decode_token方法进行解析:
eJxdjltvgkAQhf/LvkpkF3eFmvRBqqJYlAXxQuPDclGwogirCE3/e9fUvjSZ5JyZ8+VkvkAxiU
APQfgCoQRucQF6ALVhuwskwEuREFV5hFqXICSB8N9NJRIIiuUA9D40UaAq3e3j4Ij9A2E
MJVG7lX6tpqpbScFiHsxEICDhPC97slwm7SxO+ZWd2uE5k4Uvk1QWLwCBZguBCv18Kn
sq/9st8bNgy3R/Ei42q+PBQ5eq6dMkbrmJz2p/XmH9nU5WznIaNZ3+XS/GtG7Mw5CN1u
m48xZmOi2xA5ka31v2SzDpO3ZRNWy/0Hf1gMibaV+9ZfiWkQ5xjwYxrItHcboeWJfCmy
bEsOvu9O6k8dHS/HI9w9cyjjQYRxvdpfnQZgFdWriZrS6jsEbehmWLpvAD7uK91zJpwHy
tFdLd+q043eemV+8OnWWVE04QwzjKbWMcRGcbWePVPljImxuXUc5nK0OBSqCZzB1Z
r+D7Bx2Uick=
{
"rId": 100900,
"ver": "1.0.6",
"ts": 1571759551178,
"cts": 1571759551234,
"brVD": [387, 726],
"brR": [
[1440, 900],
[1440, 877], 24, 24
],
"bI": ["https://sz.meituan.com/meishi/c227/", ""],
"mT": [],
"kT": [],
"aT": [],
"tT": [],
"aM": "",
"sign": "eJwdjU1KBDEQhe8yiyzzR/e0CFnIrASZnQcok+qZwk7SVCoDehYvIS48kZ7D4Op9PN7PARjhMQWrIggO8H5RkeTtDBnD7/fnz8eXSlQK8qn2Ig8iPFKq7kK5t1NNGJxVlelC5Zm3cBXZ270x7V1nJOlQdKzZDG5XMnHMG7XDZbSGsIzd4PxR7RvIWjkPm6m9PuENt8GtsgTVG/6f9k4pHFdv07LGF/R+WlyCdQLt5sXN891sJ+201fbwB3meSgc="
}
其中 ts 就是时间戳参数, cts = ts + 1000, sign(sign同样经过压缩+base64编码,用上面的解码函数能看到sign参数,sign参数基本都是一些get提交的参数,都可以在页面源码找到), 其它参数保持不变即可
3.测试结果
可以看到, 能够拿到正确的数据
至此,解析token和生成token的过程已经讲解完毕,如果你觉得笔者写得还不错,请点个赞!
美团店铺数据抓取 token解析与生成的更多相关文章
- 汽车之家店铺数据抓取 DotnetSpider实战[一]
一.背景 春节也不能闲着,一直想学一下爬虫怎么玩,网上搜了一大堆,大多都是Python的,大家也比较活跃,文章也比较多,找了一圈,发现园子里面有个大神开发了一个DotNetSpider的开源库,很值得 ...
- 汽车之家店铺数据抓取 DotnetSpider实战
一.背景 春节也不能闲着,一直想学一下爬虫怎么玩,网上搜了一大堆,大多都是Python的,大家也比较活跃,文章也比较多,找了一圈,发现园子里面有个大神开发了一个DotNetSpider的开源库,很值得 ...
- Android登录client,验证码的获取,网页数据抓取与解析,HttpWatch基本使用
大家好,我是M1ko.在互联网时代的今天,假设一个App不接入互联网.那么这个App一定不会有长时间的生命周期,因此Android网络编程是每个Android开发人员必备的技能.博主是在校大学生,自学 ...
- 大众点评评论数据抓取 反爬虫措施有css文字映射和字体库反爬虫
大众点评评论数据抓取 反爬虫措施有css文字映射和字体库反爬虫 大众点评的反爬虫手段有那些: 封ip,封账号,字体库反爬虫,css文字映射,图形滑动验证码 这个图片是滑动验证码,访问频率高的话,会出 ...
- Java实现多种方式的http数据抓取
前言: 时下互联网第一波的浪潮已消逝,随着而来的基于万千数据的物联网时代,因而数据成为企业的重要战略资源之一.基于数据抓取技术,本文介绍了java相关抓取工具,并附上demo源码供感兴趣的朋友测试! ...
- 使用Python中的urlparse、urllib抓取和解析网页(一)(转)
对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过Python 语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...
- python3爬虫再探之豆瓣影评数据抓取
一个关于豆瓣影评的爬虫,涉及:模拟登陆,翻页抓取.直接上代码: import re import time import requests import xlsxwriter from bs4 imp ...
- [nodejs,expressjs,angularjs2] LOL英雄列表数据抓取及查询显示应用
新手练习,尝试使用angularjs2 [angularjs2 数据绑定,监听数据变化自动修改相应dom值,非常方便好用,但与传统js(jquery)的使用方法会很不同,Dom操作也不太习惯] 应用效 ...
- 数据抓取分析(python + mongodb)
分享点干货!!! Python数据抓取分析 编程模块:requests,lxml,pymongo,time,BeautifulSoup 首先获取所有产品的分类网址: def step(): try: ...
随机推荐
- .bash_profile does not exist
localhost:test jerry$ open .bash_profile The file /Users/je/Desktop/test/.bash_profile does not exis ...
- 快速入门Maven(三)
一.整合ssh框架的Maven项目 1.传递依赖 只添加了一个struts2-core依赖,发现项目中出现了很多jar, 这种情况叫 依赖传递 2.依赖版本冲突的解决 (1)第一声明优先原则(就是谁写 ...
- 域渗透基础之Kerberos认证协议
本来昨晚就该总结整理,又拖到今天早上..6点起来赶可还行 0x01 Kerberos前言 Kerberos 是一种由 MIT(麻省理工大学)提出的一种网络身份验证协议.它旨在通过使用密钥加密技术为客 ...
- PHP 插入排序 -- 折半查找
1. 折半查找 -- Binary Insertion Sort 时间复杂度 : O(n^2) 适用条件 : 相对直接插入排序,减少了数值的比较次数.适用于需要排序的数码比较少的情况. <?p ...
- python类的__repr__方法
python3中的类默认是新式类(继承object类). __repr__()是 Python 类中的一个特殊方法,由于 object 类己提供了该方法, 而所有 的 Python 类都是 objec ...
- Distinct 实现自定义去重
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 处理 Could not find a 'KafkaClient' entry in the JAAS configuration. System property 'java.security.auth.login.config' is
场景 某监控进程需要访问多个集群的Kafka INFO - org.apache.kafka.common.KafkaException: Failed to construct kafka cons ...
- Ubuntu 14.04风扇不停转,风扇狂转 的解决办法,亲测有效。
Ubuntu 14.04风扇不停转,风扇狂转 的解决办法,亲测有效. 原文 http://ubuntuforums.org/showthread.php?t=2218367 楼主说:ubuntu 1 ...
- Java多线程编程(四)Lock的使用
一.使用ReentrantLock类 在Java多线程中,可以使用synchronized关键字来实现线程之间的同步互斥,但ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大, ...
- SpringBoot整合RabbitMq(二)
本文序列化和添加package参考:https://www.jianshu.com/p/13fd9ff0648d RabbitMq安装 [root@topcheer ~]# docker ...