【自动化】一共获取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", {

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java EE】深入理解 Java 线程的生命周期与状态转换

多线程编程在 Java 中是实现高效并发的核心技术之一。每个线程在其生命周期内会经历多个状态&#xff0c;这些状态反映了线程在特定时间点的行为与系统资源的使用情况。了解线程的状态及其转换机制&#xff0c;对于编写健壮的并发程序尤为重要。本文将深入探讨 Java 线程的六种…

python 零星知识点

一、头部注释 在Python脚本中&#xff0c;头部注释&#xff08;也称为文档字符串或模块级注释&#xff09;用于提供关于脚本的元数据和描述信息。除了指定解释器和编码方式外&#xff0c;还可以包含其他信息。以下是一些常见的头部注释示例&#xff1a; 1.模块描述 "&qu…

【MySQL】MySQL表的增删改查(初阶)

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 表内容操作 插入内容 按顺序插入 指定某些列插入 一次插入多行记录 插入时间 查询表内容 全列查询 指定列查询 指定表达式查询 用as取别名 ​编辑 去重查询 排序查询…

不同搜索引擎蜘蛛的功能、‌抓取策略与技术实现差异探究

搜索引擎作为互联网信息检索的重要工具&#xff0c;‌其核心功能依赖于背后的“蜘蛛”程序。‌这些蜘蛛程序负责访问互联网上的各种内容&#xff0c;‌并建立索引数据库&#xff0c;‌以便用户能够快速准确地找到所需信息。‌然而&#xff0c;‌不同搜索引擎的蜘蛛在功能、‌抓…

Axios介绍;前后端分离开发的介绍;YAPI的使用;Vue项目简介、入门;Elementui的使用;nginx介绍

1 Ajax 1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据&#xff0c;如下图所示的表格中的学生信息&#xff0c;应该来自于后台&#xff0c;那么我们的后台和前端是互不影响的2个程序&#xff0c;那么我们前端应该如何从后台获取数据呢&#xff1f;因为是2个程序&#xf…

仿Muduo库实现高并发服务器——EventLoop模块

我刚开始看这个模块时&#xff0c;也是看不明白&#xff0c;什么是事件管理模块。 此时此刻&#xff0c;大领导的背影&#xff0c;还是那么清晰。结合故事模块&#xff0c;慢慢理。 EventLoop模块 成员&#xff1a; 绿色&#xff1a; 利用智能指针对new出来的对象进行管理&…

武汉流星汇聚:亚马逊赋能中小企业,跨境电商市场举足轻重地位稳

在全球经济一体化的浪潮中&#xff0c;跨境电商作为推动国际贸易的重要力量&#xff0c;正以前所未有的速度发展。在这场全球性的商业竞赛中&#xff0c;亚马逊以其卓越的市场表现、强大的技术实力和深厚的品牌影响力&#xff0c;稳居跨境电商市场的领头羊地位&#xff0c;其举…

多任务下载工具.exe

关键代码 void DownloadTask::StartDownload(const QUrl url,QFile *file,qint64 startPoint/* 0 */,qint64 endPoint/* -1 */) {if( NULL file )return;m_HaveDoneBytes 0;m_StartPoint startPoint;m_EndPoint endPoint;m_File file;//根据HTTP协议&#xff0c;写入RANGE…

Vue3基础2

1.Hooks 就是进行数据的封装&#xff0c;同一种类型的 数据 方法 计算属性 &#xff0c;放在一起 命名规范 use功能名称.ts 或.js 创建一个文件夹 hooks 1.useDog.ts import { reactive,onMounted } from "vue"; import axios from "axios";export def…

[数据集][目标检测]红外场景下车辆和行人检测数据集VOC+YOLO格式19069张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;19069 标注数量(xml文件个数)&#xff1a;19069 标注数量(txt文件个数)&#xff1a;19069 标…

SQL AI 工具:颠覆数据库管理与分析的创新力量

一、SQL AI 工具的兴起与发展 在当今数字化的时代&#xff0c;数据量呈现爆炸式增长&#xff0c;企业和个人对于高效管理和分析数据的需求日益迫切。传统的数据库管理和查询方式&#xff0c;对于非技术人员来说存在较高的门槛&#xff0c;操作复杂且耗时。这一背景为 SQL AI 工…

人工智能开发NPU使用

1. NPU使用 RK3588 内置 NPU 模块, 处理性能最高可达6TOPS&#xff08;即每秒处理6万亿次操作&#xff09;。这款NPU不仅拥有强大的计算能力&#xff0c;支持TensorFlow、Caffe、Tflite、Pytorch、Onnx NN、Android NN 等常见框架。使用该NPU需要下载RKNN SDK&#xff0c;RKNN…

深度学习--自监督学习

自监督学习是一种无需大量人工标注的数据驱动方法&#xff0c;在生成模型中应用广泛。自监督学习通过利用数据中的固有结构或属性创建“伪标签”&#xff0c;使模型在没有人工标签的情况下进行学习。这种方法既提高了模型的训练效率&#xff0c;又降低了对标注数据的依赖。 概…

VMware安装Ubuntu20.04

1. 下载 整理的镜像链接 阿里网盘&#xff1a; 阿里云盘分享 提取码: l7y1 2. 新建虚拟机向导 选择自定义&#xff0c;然后下一步。 默认配置&#xff0c;下一步。 选择稍后安装操作系统&#xff0c;下一步。 选择操作系统Linux&#xff0c;版本Ubuntu64位&#xff0c;下一…

OCC笔记:Windows下OCC的编译

一、源码下载 进OCC官网下载https://dev.opencascade.org/release即可&#xff0c;或直接Clone它的Git库https://dev.opencascade.org/resources/git_repository&#xff0c;本文用的源码库版本为7.4.0&#xff08;我本机安装的VS2013&#xff0c;我又想用到AIS_ViewCube&…

AList嵌入动态验证码实现动态校验

前言 晓杰利用ALists创建了个网盘资源站&#xff0c;想着如何增加个动态验证码进行验证后才能进行访问下载&#xff0c;刚开始利用了固定的验证码&#xff0c;用户可以通过JS代码中进行绕过或直接拿到验证码&#xff0c;经过晓杰多次优化&#xff0c;最终版本支持动态获取验证…

Linux(面试篇)

目录 什么是Linux 什么是Linux内核&#xff1f; Linux的基本组件是什么&#xff1f; Bash和Dos之间基本区别是什么&#xff1f; 什么是Root账户 什么是Bash? 什么时CLI? Linux的目录结构时怎样的&#xff1f; 什么是硬链接和软链接&#xff1f; 什么叫CC攻击&#…

IP代理可以做爬虫吗?探讨其可行性与相应实践

IP代理在网络爬虫中的应用 在网络爬虫的世界里&#xff0c;IP代理就像是爬虫的“隐形斗篷”&#xff0c;帮助它们在获取数据的过程中隐藏真实身份&#xff0c;避免被目标网站识别和封禁。那么&#xff0c;IP代理到底能否用于爬虫呢&#xff1f;答案是肯定的&#xff01;接下来…

Ajax-04

一.同步代码和异步代码 同步代码&#xff1a;浏览器按照我们书写代码的顺序一行一行地执行程序的。在上一行完成后会执行下一行。 同步代码&#xff1a;逐行执行&#xff0c;需原地等待结果&#xff0c;才继续向下执行 异步代码&#xff1a;可以在执行一个可能长期运行的任务…

docker容器图形化管理之Portainer

docker容器轻量级图形页面管理之Portainer 1、查看portainer镜像 [rootlocalhost ~]# docker search portainer 2、下载portainer镜像 [rootlocalhost ~]# docker pull portainer/portainer #选择喜欢的portainer风格镜像下载 3、启动dockerui容器 [rootlocalhost ~]# doc…