国家重大建设项目库网站注册,四川建筑人才网,高级又小众的公众号,网络营销是怎么发展的# 抓取数位观察中城市的GDP,公交车数量#xff0c;户籍人口
# url https://www.swguancha.com/home/query-city-page
# 1.找数据
# 1.1如果数据在页面源代码里#xff0c;则访问#xff0c;在本案例中并没有在源代码中
# 1.2如果数据不在页面源代码里#xff…# 抓取数位观察中城市的GDP,公交车数量户籍人口
# url https://www.swguancha.com/home/query-city-page
# 1.找数据
# 1.1如果数据在页面源代码里则访问在本案例中并没有在源代码中
# 1.2如果数据不在页面源代码里则要抓包一般在xhr选项中
# 1.3在XHR与JS中可能占比73如果网站有分页多点点分页增加的为需要的包
# 如果参数是以requests payload的形式挂载在请求体上的此时请求头中的content-type必须和浏览器一致否则服务器无法解析你的数据# 请求头如果以user-agent结尾则没有什么特殊的如果后面还有x-什么的一大串则是自己需要添加的逆向的不是浏览器自带的。还有deviceTypecontent-type需要带上。# requests.post传递参数的时候如果传的是字典默认会被处理成form data形式 即current1dimensionTime2019levelType2propertyCodeDISTRICT_PROP_GJ025_RJDQSCZZpropertyCodeDISTRICT格式
# 但是浏览器传递的是json格式所以发生了错误,解决的方法import json,json.dumps(data)转换为json字符串格式,或者在传递参数的时候json data
# 通过访问获取到密文数据UiY3CaV4ZQrQR9/LFH5qq2F4H8zkRn76NFu...接下来就是解密# 通过观察该网站多个不同的url都进行了加密正常情况下应该是用一套加密逻辑的我们可以直接搜interceptors拦截器 如何搜索呢
如何弹出控制窗口 点击三个点点击Hide console drawer即可 在search下搜索interceptors 这种类型的与解密无关 获取关键代码
t.data是被加密的数据var n u.enc.Utf8.parse(l) # 把l处理为编码为utf-8, r u.AES.decrypt(t.data, n, { # AES.decrypt AES解密mode: u.mode.ECB,padding: u.pad.Pkcs7}), i r.toString(u.enc.Utf8), s JSON.parse(i);t.data s’‘’
解密方式AES
密钥l.encode(utf-8) # QV1f3nHn2qm7i3xrj3Y9K9imDdGTjTu9.encode(utf-8)
模式ECB
padding:PKCS7 -unpad 如何获取密钥呢
打断点 然后点击下一个页面页面会暂停住 通过console获得密钥在写代码时要将密钥转为utf-8的格式 如何干掉填充呢 ming_bs unpad(ming_bs,16)
将加密数据转为字节
base64.b64decode(response.text)再进行解密
ming_bs unpad(ming_bs,16) # AES处理的长度就是16
ming ming_bs.decode(utf-8)
再将解密的数据转为utf-8格式
ming ming_bs.decode(utf-8)