js 爬虫抓取网页数据(某团没事商铺数据的获取,主要是一个_token的解密JS地址 )
优采云 发布时间: 2022-01-04 08:23js 爬虫抓取网页数据(某团没事商铺数据的获取,主要是一个_token的解密JS地址
)
文章内容
私信小编01可以获得大量Python学习资料
前言
这周有很多事情,我采访了一家公司。它被认为是成功的。薪水比现在的薪水高,但我会继续努力。前几天发现几个反了网站 还没解决,脑子挺大的,哎,就是因为js太复杂了,把代码扣了又扣,所以要补对于 JS。
这次是从某群的okshop获取数据,主要是_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'])