【自动化】一共获取6600多公司信息【逆向】一页15还加密。

2024-08-27 03:52

本文主要是介绍【自动化】一共获取6600多公司信息【逆向】一页15还加密。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、【逆向】一页15还加密。

二、【自动化】一共获取6600多公司信息

三、对于两种方式我喜欢第二种自动化

from DrissionPage import ChromiumPage, ChromiumOptions
import time
# chrome:version
co = ChromiumOptions().set_paths(browser_path=r"C:\Users\lenovo\AppData\Local\Google\Chrome\Application\chrome.exe")
page = ChromiumPage(co)page.get("https://www.kanzhun.com/search/?query=%E5%85%AC%E5%8F%B8&type=0")
page.ele('x://div[@class="btn-link"]').click()
time.sleep(1)result = []
times = 0
i=0
for j in range(50):print(f"已滑动{i}次了")page.run_js('setInterval(function(){window.scrollBy(0,100)},100)')i+=1len_result = len(result)print(f"公司总数为{len_result}")for tag in page.eles('x://div[@class="list-item"]',timeout=5):title = tag.ele('x://div[@class="middle"]/a').textdec = tag.ele('x://div[@class="middle"]/div[@class="desc"]').textbusiness_info=tag.ele('x://div[@class="business-info"]').texturl= tag.ele('x://a[@class="title"]').attr('href')print(title,dec,business_info,url)result.append(url)newlen_result = len(result)if newlen_result==len_result:times += 1else:times=0if times>5:print("已加载完毕")break

四、【逆向】一页15还加密。

1.通过断点调试获得B KIV参数

const fs = require('./js2.js')
const CryptoJS = require('crypto-js')
window = global;
var zy;
!function(i) {"use strict";var e, t, n, r, o, i = {}, u = {};function c(e) {var t = u[e];if (void 0 !== t)return t.exports;var n = u[e] = {id: e,loaded: !1,exports: {}};return i[e].call(n.exports, n, n.exports, c),n.loaded = !0,n.exports}zy = cc.m = i,c.amdO = {},e = [],c.O = function(t, n, r, o) {if (!n) {var i = 1 / 0;for (l = 0; l < e.length; l++) {n = e[l][0],r = e[l][1],o = e[l][2];for (var u = !0, f = 0; f < n.length; f++)(!1 & o || i >= o) && Object.keys(c.O).every((function(e) {return c.O[e](n[f])})) ? n.splice(f--, 1) : (u = !1,o < i && (i = o));if (u) {e.splice(l--, 1);var a = r();void 0 !== a && (t = a)}}return t}o = o || 0;for (var l = e.length; l > 0 && e[l - 1][2] > o; l--)e[l] = e[l - 1];e[l] = [n, r, o]},c.n = function(e) {var t = e && e.__esModule ? function() {return e.default}: function() {return e};return c.d(t, {a: t}),t},n = Object.getPrototypeOf ? function(e) {return Object.getPrototypeOf(e)}: function(e) {return e.__proto__},c.t = function(e, r) {if (1 & r && (e = this(e)),8 & r)return e;if ("object" == typeof e && e) {if (4 & r && e.__esModule)return e;if (16 & r && "function" == typeof e.then)return e}var o = Object.create(null);c.r(o);var i = {};t = t || [null, n({}), n([]), n(n)];for (var u = 2 & r && e; "object" == typeof u && !~t.indexOf(u); u = n(u))Object.getOwnPropertyNames(u).forEach((function(t) {i[t] = function() {return e[t]}}));return i.default = function() {return e},c.d(o, i),o},c.d = function(e, t) {for (var n in t)c.o(t, n) && !c.o(e, n) && Object.defineProperty(e, n, {enumerable: !0,get: t[n]})},c.f = {},c.e = function(e) {return Promise.all(Object.keys(c.f).reduce((function(t, n) {return c.f[n](e, t),t}), []))},c.u = function(e) {return "js/" + {189: "wangeditor",536: "vod-js-sdk-v6"}[e] + "-" + {189: "5e0d5d",536: "a04632"}[e] + ".js"},c.miniCssF = function(e) {},c.g = function() {if ("object" == typeof globalThis)return globalThis;try {return this || new Function("return this")()} catch (e) {if ("object" == typeof window)return window}}(),c.o = function(e, t) {return Object.prototype.hasOwnProperty.call(e, t)},r = {},o = "kz-ssr-pc:",c.l = function(e, t, n, i) {if (r[e])r[e].push(t);else {var u, f;if (void 0 !== n)for (var a = document.getElementsByTagName("script"), l = 0; l < a.length; l++) {var s = a[l];if (s.getAttribute("src") == e || s.getAttribute("data-webpack") == o + n) {u = s;break}}u || (f = !0,(u = document.createElement("script")).charset = "utf-8",u.timeout = 120,c.nc && u.setAttribute("nonce", c.nc),u.setAttribute("data-webpack", o + n),u.src = e),r[e] = [t];var d = function(t, n) {u.onerror = u.onload = null,clearTimeout(p);var o = r[e];if (delete r[e],u.parentNode && u.parentNode.removeChild(u),o && o.forEach((function(e) {return e(n)})),t)return t(n)}, p = setTimeout(d.bind(null, void 0, {type: "timeout",target: u}), 12e4);u.onerror = d.bind(null, u.onerror),u.onload = d.bind(null, u.onload),f && document.head.appendChild(u)}},c.r = function(e) {"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {value: "Module"}),Object.defineProperty(e, "__esModule", {

这篇关于【自动化】一共获取6600多公司信息【逆向】一页15还加密。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1110560

相关文章

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操