当前位置: 首页 > news >正文

爬取数位观察城市数据知识总结

# 抓取数位观察中城市的GDP,公交车数量,户籍人口
# url = "https://www.swguancha.com/home/query-city-page"
# 1.找数据
# 1.1如果数据在页面源代码里,则访问,在本案例中并没有在源代码中
# 1.2如果数据不在页面源代码里,则要抓包,一般在xhr选项中
# 1.3在XHR与JS中可能占比7:3,如果网站有分页,多点点分页,增加的为需要的包
#    如果参数是以requests payload的形式挂载在请求体上的,此时,请求头中的content-type必须和浏览器一致,否则服务器无法解析你的数据#    请求头如果以user-agent结尾,则没有什么特殊的,如果后面还有x-什么的一大串,则是自己需要添加的逆向的,不是浏览器自带的。还有deviceType,content-type需要带上。# requests.post传递参数的时候,如果传的是字典,默认会被处理成form data形式 即current=1&dimensionTime=2019&levelType=2&propertyCode=DISTRICT_PROP_GJ025_RJDQSCZZ&propertyCode=DISTRICT格式
# 但是浏览器传递的是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")

 

http://www.lryc.cn/news/305488.html

相关文章:

  • [About-C++] 非常实用的知识点
  • 渗透工具——kali中wpscan简介
  • 信息安全计划:它是什么、为什么需要一个以及如何开始
  • 【软件测试】定位前后端bug总结+Web/APP测试分析
  • Github 2024-02-21 开源项目日报 Top10
  • 机器学习模型的过拟合与欠拟合
  • 华为OD机试真题-虚拟游戏理财-2023年OD统一考试(C卷)---Python3--开源
  • 新手搭建服装小程序全攻略
  • 设计模式学习笔记 - 面向对象 - 3.面向对象比面向过程有哪些优势?面向过程真的过时了吗?
  • 联想开天昭阳N4620Z笔记本如何恢复出厂麒麟操作系统(图解)
  • Qt经典面试之理论总结(自己整理总结)
  • 【YOLO系列算法人员摔倒检测】
  • 获取淘宝商品详情API、商品主图、图片搜索api
  • HarmonyOS创建一个ArkTS卡片
  • ChatGPT Plus遇到订阅被拒原因与解决方案
  • UE蓝图 函数调用(CallFunction)节点和源码
  • Vue单文件学习项目综合案例Demo,黑马vue教程
  • 机器视觉【3】非线性求解相机几何参数
  • Qt编译报错:The slot requires more arguments than the signal provides.
  • 【Unity】提示No valid Unity Editor liscense found.Please active your liscense.
  • 如何在 Tomcat 中为 Web 应用程序启用和配置缓存?
  • QEMU开发入门
  • 10-pytorch-完整模型训练
  • 高级RAG:重新排名,从原理到实现的两种主流方法
  • 使用logicflow流程图实例
  • Stable Diffusion 绘画入门教程(webui)-ControlNet(IP2P)
  • 五力分析(Porter‘s Five Forces)
  • 十一、Qt数据库操作
  • 【Spring】IoC容器 控制反转 与 DI依赖注入 XML实现版本 第二期
  • 神经网络系列---感知机(Neuron)