欢迎光临
我们一直在努力

Python爬虫教程:JS逆向之某团美食商铺数据获取

文章目录

  • 前言
  • 一、页面分析
  • 二、_token解密
  • 三、获取加密方法
  • 四、请求源码

前言

这周事情有点多,还面试了一家公司,算是学有所成吧,工资比现在的多,不过我还会继续努力的,前几天找了几个逆向的网站都没解出来,头挺大,哎,都是JS太复杂得问题,扣来扣去扣不全代码,得要补一补JS。

这次带来的是某团没事商铺数据的获取,主要是一个_token的解密JS
地址连接:aHR0cHM6Ly9oei5tZWl0dWFuLmNvbS9tZWlzaGkv


一、页面分析

打开开发者模式抓取数据链接,这个请求的主要加密参数是_token,uuid可以从源码获取

 

 

二、_token解密

 

搜索_token,出来一个直接点进去,再接着搜索,可以找到加密位置,下断点重新请求

 

 

调试进去,可以看到主要的加密函数

 


最后一步,就是要扣他的加密JS了,我尝试着扣了一下,哎,不太行,我还是太菜了,抠不出完整的,怎么办???


三、获取加密方法

 

这个时候哦怎么办,直接把他的JS代码直接抠出来,是个匿名函数,里面有三个参数

 

 

然后其中_token加密参数是第一个字典参数的key为17的方法里

 

 

我们在外面声明个全局变量 var data;

 

 

最后我们执行下,可以看到_token已经出来了

 

 

四、请求源码

import requests,json,execjs

with open('./new.js',encoding='utf-8') as f:
    js_func = execjs.compile(f.read())

_token = js_func.eval('data')
print(_token)

headers = {
    'Connection': 'keep-alive',
    'Accept': 'application/json',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36',
    'Sec-Fetch-Site': 'same-origin',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Dest': 'empty',
    'Referer': 'https://hz.meituan.com/meishi/pn2/',
    'Accept-Language': 'zh-CN,zh;q=0.9',
}

params = (
    ('cityName', '杭州'),
    ('cateId', '0'),
    ('areaId', '0'),
    ('sort', ''),
    ('dinnerCountAttrId', ''),
    ('page', '1'),
    ('userId', ''),
    ('uuid', 'dc27c2b094a34e0a9c63.1605940296.1.0.0'),
    ('platform', '1'),
    ('partner', '126'),
    ('originUrl', 'https://hz.meituan.com/meishi/pn1/'),
    ('riskLevel', '1'),
    ('optimusCode', '10'),
    ('_token', _token),
)


response = requests.get('https://hz.meituan.com/meishi/api/poi/getPoiList', headers=headers, params=params)
js_data = json.loads(response.text)
print(response.text)
for data in js_data['data']['poiInfos']:
    print(data['title'],data['address'],data['poiId'])

 

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:英协网 » Python爬虫教程:JS逆向之某团美食商铺数据获取

分享到: 生成海报
avatar

热门文章

  • 评论 抢沙发

    • QQ号
    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址

    登录

    忘记密码 ?

    切换登录

    注册

    我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活