爬虫案例十一js逆向数位观察网
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、网站分析
- 二、代码
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
爬虫案例十一js逆向数位观察网
提示:以下是本篇文章正文内容,下面案例可供参考
一、网站分析
二、代码
python代码
"""
网站:https://www.swguancha.com/
"""
import requests
import json
import execjs
url = "https://app.swguancha.com/client/v1/cPublic/consumer/baseInfo"
f = open('sm.js',mode='r',encoding='utf-8')
js_code = f.read()
js = execjs.compile(js_code)
headers = {
"":"" # 头自行添加
}
data ={
"size":6,
"current":3,
"propertyCode":["DISTRICT_PROP_GJ025_RJDQSCZZ","DISTRICT_PROP_GJ117_NMSYGGQDCYYCLS","DISTRICT_PROP_GJ001_NMHJRK"],
"dimensionTime":"2019",
"levelType":2}
data_str = json.dumps(data, separators=(',', ':'))
resp = requests.post(url,data=data_str,headers=headers)
data = js.call("main",resp.text)
print(data)
#{'code': 0, 'msg': None, 'data': {'current': 3, 'size': 6, 'total': 351, 'data': [{'cityName': '郑州市', 'cityCode': '410100', 'cityKpiNum': 138, 'cityImage': 'http://imgs.pub.swguancha.com/image/city_pic_bdbk_410100.jpg',
# 'viewCount': 21132, 'sortNum': 13, 'simpleVOList': [{'districtId': '410100', 'districtName': '郑州市', 'propertyName': '年末实有公共汽(电)车营运车辆数', 'simpleName': '公共汽(电)车量', 'propertyCode': 'DISTRICT_PROP_GJ117_NMSYGGQDCYYCLS', 'propertyValue': '6316', 'valueUnit': '辆',
var u = require('crypto-js');
var l = "QV1f3nHn2qm7i3xrj3Y9K9imDdGTjTu9";
function main(t_data) {
var n = u.enc.Utf8.parse(l)
, r = u.AES.decrypt(t_data, n, {
mode: u.mode.ECB,
padding: u.pad.Pkcs7
});
i = r.toString(u.enc.Utf8);
s = JSON.parse(i);
return s
}
总结
在堆栈中发现promise,可以先尝试搜索interceptors,对于一般简单的网站可能能很快就能解决。