巧用selenium破解瑞数js逆向

实战站点:湖北省生态环境厅:http://sthjt.hubei.gov.cn/site/sthjt/search.html?searchWord=%E7%A2%B3%E6%8E%92%E6%94%BE&siteId=41&pageSize=10
前言:爬虫界的一座大山,瑞数信息,看了网上的资料就算硬破也得搭建简易的web服务.
不过再难,他都有解决方案,就是通过selenium+js逆向过程中的一些有用信息。

# -*- coding: utf-8 -*-
"""
# @Time         : 2021/8/13 9:19
# @Author       : ChenLvLei
# @Email        : 2516455367@qq.com
# @FileName     : hubeisheng
# @Description  :http://sthjt.hubei.gov.cn/site/sthjt/search.html?searchWord=%E7%A2%B3%E6%8E%92%E6%94%BE&siteId=41&pageSize=10
# code is far away from bugs with the god animal protectingI love animals. They taste delicious.┏┓      ┏┓┏┛┻━━━┛┻┓┃      ☃      ┃┃  ┳┛  ┗┳  ┃┃      ┻      ┃┗━┓      ┏━┛┃      ┗━━━┓┃  神兽保佑    ┣┓┃ 永无BUG!   ┏┛┗┓┓┏━┳┓┏┛┃┫┫  ┃┫┫┗┻┛  ┗┻┛
"""
import sysimport requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsheaders = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Cache-Control': 'no-cache','Connection': 'keep-alive','Host': 'sthjt.hubei.gov.cn','Pragma': 'no-cache','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'}def get_cookies():option = Options()option.add_argument("--incognito")  # 配置隐私模式# option.add_argument('--headless')  # 配置无界面option.add_experimental_option('excludeSwitches', ['enable-automation'])driver = webdriver.Chrome(executable_path="./chromedriver.exe", options=option)driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator,'webdriver',{get: () => undefined})"""})driver.get('灰色链接...已经隐藏')# driver.maximize_window()data = driver.get_cookies()cookie = {}cookie.update({'uuid': data[0].get('value')})cookie.update({'FSSBBIl1UgzbN7N80T': data[1].get('value')})cookie.update({'FSSBBIl1UgzbN7N80S': data[2].get('value')})cookie.update({'token': data[3].get('value')})cookie.update({'JSESSIONID': data[4].get('value')})driver.close()return cookiecookie = get_cookies()
url = '灰色链接...已经隐藏'
lis = [i for i in range(1, 21)]
for page, n in enumerate(lis):response = requests.get(url.format(page), headers=headers, cookies=cookie)x = 100y = (page + 1) / len(lis)done = int(x * y)if response.status_code != 200:cookie = get_cookies()response = requests.get(url.format(page), headers=headers, cookies=cookie)else:print(response.text)done = int(x * y)sys.stdout.write("\r[%s%s] %d%%" % ('█' * done, ' ' * (100 - done), x * y) + '\n')sys.stdout.flush()

结果展示:
肯定看了的人有疑惑selenium加载的数据明明是h5,为啥我的是json。因为会思考的人往往不缺解决方案。
总结:selenium抓数据是不推荐的,但可以利用他获取用价值的加密参数。
学习交流专用:

爬虫破解瑞数js逆向动态混淆相关推荐

  1. 爬虫:破解同花顺网js加密动态生成请求中所需要的cookie

    看了半天帖子都是都是通过selenium破解js加密的,个人感觉用selenium破解js加密效率太低,而且繁琐,根据目前业务需求就自己研究了一下同花顺的js加密. 通过接口测试工具直接请求接口发现获 ...

  2. 某商标局公告抓取思路总结爬虫过无限debugger Js逆向调试

    某商标局公告抓取思路总结爬虫过无限debugger @[TOC](某商标局公告抓取思路总结爬虫过无限debugger) 目标地址:aHR0cDovL3dzZ2cuc2JqLmNuaXBhLmdvdi5 ...

  3. JS逆向 | ob混淆一键还原工具

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!  在JS逆向的过程中,我们可能经常碰到类似如下的代码:  开头定义了一个大数组,然后对这个大数组里的内容进行位移, ...

  4. python爬虫高级教程,JS逆向之百度翻译

    环境 python版本号 系统 游览器 python 3.7.2 win7 google chrome 关于本文 本文将会通过爬虫的方式实现简单的百度翻译.本文中的代码只供学习,不允许作为于商务作用. ...

  5. js逆向-ast混淆还原进阶案例(1)

    我啥也不说,自行领悟. 混淆代码: var _0x1491 = ['\x77\x35\x58\x43\x6a\x33\x54\x43\x6b\x77\x77\x3d', '\x63\x63\x4f\x ...

  6. js逆向-ast混淆还原入门案例(2)

    将上篇分解,记录多写法将a["length"]转变为a.length 案例需2个文件:运行文件2_run.js       源码文件2_read.js 2_read.js var ...

  7. js逆向-ast混淆还原入门案例(1)

    recast资料太少,在大佬的建议下转到babel了. 搬运各个地方的案例学习后,分享给大家,也给自己一个记录. 案例需2个文件:运行文件1_run.js       源码文件1_read.js 1_ ...

  8. JS逆向 -- 动态调试

    一.在网页输入要提交的信息 二.打开开发者工具,查看网络选项卡,点击提交 三.数据是被加密的,搜索关键字"pwd",点击开发者工具右上角的三个点,然后选择搜索 四.输入关键字&qu ...

  9. Python爬虫网易云音乐--JS逆向-补充笔记

    课程地址:https://www.bilibili.com/video/BV1Mi4y147Yb up主省略掉的,用报错信息来一一回溯的方式把js文件补全的过程,主要把握的几个点(把以下部分代码找到粘 ...

最新文章

  1. 新闻网大数据实时分析可视化系统项目——5、Hadoop2.X HA架构与部署
  2. MySQL数据库事务的特性
  3. android开发 文件分享到应用,Android 实现文件分享功能(共享多个文件)
  4. C/C++ 去掉字符串首位的空格字符
  5. 恶意软件利用合法的代码签名证书横行Windows 系统
  6. DL应用:query生成和query推荐
  7. Netty网络编程聊天项目
  8. 虚函数和虚析构函数的实现原理--虚函数表
  9. CPT205-Computer Graphics
  10. python取绝对值fab_Python transforms.CenterCrop方法代碼示例
  11. MPB:北林袁峥嵘组-​16S扩增子分析中常用软件及数据库应用现状
  12. 个人知识管理PKM:收集、消化、应用、创新
  13. 神舟战神ZX9 2022款怎么样
  14. 常用Java数据库连接池性能测试
  15. 《起跑吧,Opa》 -- 中译本 第一章 初识Opa
  16. 图片怎么转成PDF格式?介绍三种转换思路
  17. 纯Java实现网易邮箱发送邮件
  18. RuntimeError: Physical devices cannot be modified after being initialized
  19. SIGIR22:User-controllable Recommendation Against Filter Bubbles
  20. 科普:什么是ChatGPT?

热门文章

  1. python sasl_python用sasl的方式连接ldap提示
  2. [BJOI2019] 排兵布阵
  3. Linux 下载百度网盘文件
  4. Wildcard Matching 1
  5. 关于计算机的英语单词及例句,小学生必背英语单词及例句(四年级).doc
  6. 怎么用wps将pdf转换成html,如何将PDF格式的文件转换成HTML格式
  7. 霸榜巨作、阿里内部顶级专家整理(Redis 5设计与源码分析)
  8. 华为交换机配置consol密码及vty密码
  9. python自动办公 pdf_别再问如何用 Python 提取 PDF 内容了!
  10. Python Cannot open E:\Python36\Scripts\pip-script.py