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

news2024/12/27 12:13:05

一、【逆向】一页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+=1
    len_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').text
        dec = tag.ele('x://div[@class="middle"]/div[@class="desc"]').text
        business_info=tag.ele('x://div[@class="business-info"]').text
        url= 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 += 1
        else:
            times=0
        if 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 = c
    c.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.coloradmin.cn/o/2076597.html

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

相关文章

qt-19 QMainWindow窗口组件-菜单栏-工具栏

QMainWindow窗口组件-菜单栏-工具栏 showwidgetshowwidget.hshowwidget.cpp processorprocessor.hprocessor.cpp main.cpp运行图 showwidget showwidget.h #ifndef SHOWWIDGET_H #define SHOWWIDGET_H#include <QWidget> #include <QLabel> #include <QTextEd…

Sparse Kernel Canonical Correlation Analysis

论文链接&#xff1a;https://arxiv.org/pdf/1701.04207 看这篇论文终于看懂核函数了。。谢谢作者

小乌龟运动控制-2 小乌龟走方形

目录 第一章 小乌龟划圆圈 第二章 小乌龟走方形 文章目录 目录一、简陋版-乌龟行走方形二、强化版-乌龟行走方形 一、简陋版-乌龟行走方形 常见的简陋的控制乌龟行走方形的方式很简单&#xff0c;例如下面&#xff0c;可以测试下&#xff1a; 我们需要创建一个名为draw_squa…

韩顺平Java-第二十六章:正则表达式

一 正则表达式入门 1 极速体验正则表达式威力 package com.hspedu.regexp;import java.util.regex.Matcher; import java.util.regex.Pattern;体验正则表达式的威力&#xff0c;给我们文本处理带来哪些便利public class Regexp_ {public static void main(String[] args) {Str…

每日OJ_牛客_剪花布条(string内置函数)

目录 牛客_剪花布条&#xff08;string内置函数&#xff09; 解析代码 牛客_剪花布条&#xff08;string内置函数&#xff09; 剪花布条__牛客网 解析代码 题意就是在S串中&#xff0c;T串整体出现了多少次。C语言可以通过strstr函数找&#xff0c;用STL的string库可以通过f…

Docker方式部署K8s集群

1.1 集群创建说明 Kubernetes支持多种容器运行时&#xff0c;包括Containerd、Docker和CRI-O。以下是这三种方式的详细说明&#xff1a; Containerd&#xff1a;Containerd是Kubernetes默认使用的容器运行时。它是一个轻量级的容器运行时&#xff0c;专为Kubernetes设计&#…

基于Transformer架构的大模型推理硬件加速器设计

概述 当前大模型的基础架构正在向 Transformer 结构收敛1&#xff0c;Transformer架构自谷歌2017年提出后比较稳定&#xff0c;因此针对Transformer的计算设计专用的ASIC加速器很有必要。 尤其是“Attention is All you Need”》“Money is All you Need”&#xff0c;哈哈哈…

559. N 叉树的最大深度(递归法)

目录 一&#xff1a;题目&#xff1a; 二&#xff1a;代码&#xff1a; 三&#xff1a;结果&#xff1a; 一&#xff1a;题目&#xff1a; 给定一个 N 叉树&#xff0c;找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历…

Android原生JobSchedulerContext内存泄漏导致设备重启的现象

一、现象:原生JobSchedulerContext内存泄漏占比 JobServiceContext内存泄露导致ServiceDispatcher也跟着一起内存堆积 二、现象日志: 内存泄漏的日志关键信息:ActivityManager: Unbind failed: could not find connection for android.app.LoadedApk$ServiceDispatcher$In…

聚星文社——Ai推文工具

聚星文社——Ai推文工具 聚星文社是一家提供AI推文工具的公司。他们的工具利用人工智能技术&#xff0c;能够自动生成高质量的推文内容。 聚星文社——Ai推文工具https://iimenvrieak.feishu.cn/docx/ZhRNdEWT6oGdCwxdhOPcdds7nof 这个工具可以为用户提供多种功能。首先&…

【Datawhale X 李宏毅苹果书 AI夏令营】《深度学习详解》Task1 打卡

文章目录 前言学习目标 一、机器学习二、案例学习三、隐藏任务隐藏任务①&#xff1a;1. **回归 (Regression)**2. **分类 (Classification)**3. **模型 (Model)**4. **特征 (Feature)**5. **超参数 (Hyperparameter)**6. **训练集 (Training Set)**7. **验证集 (Validation Se…

Seata(简单配置就能使用,含下载)

Seata参考资料和下载 Seata官网: Apache Seata Seata中文开发文档: Seata 是什么&#xff1f; | Apache Seata Seata下载地址&#xff1a; 这里提供一个最新版的 seata-server-2.0.0.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 Seata的配置 第一步解压Seat…

Vue笔记总结(Xmind格式):第一天

Xmind鸟瞰图&#xff1a; 简单文字总结&#xff1a; vue知识总结&#xff1a; vue的优点&#xff1a; 1.体积小 2.更高的运行效率 3.双向数据绑定 4.生态丰富&#xff0c;学习成本低 vue指令&#xff1a; 1.指令&#xff1a;带有v-前缀的特殊属性 2…

基于SSM的学生管理系统的设计与实现(包含源码、sql脚本、导入视频教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的学生管理系统2拥有三种角色 管理员&#xff1a;学生管理、教师管理、课程管理、个人信息管理等教师&#xff1a;添加课程、录入成绩、查看选课名单和结课、个人信息等学生&…

关于Linux sudo授权的那点事

sudo可以让我们以其他用户的身份执行命令&#xff0c;而只需要自己的密码&#xff08;甚至不需要密码&#xff09;。这比su切换用户需要目标用户的密码要方便。 从授权角度来审视&#xff0c;sudo比su的授权粒度要细很多&#xff0c;su属于大放权&#xff0c;例如&#xff1a;s…

STM32——PWR电源控制的低功耗模式

1、理论知识 本节主要学习配置低功耗模式&#xff1a;防止在空闲时候耗电&#xff08;关闭/唤醒哪些硬件很重要&#xff09; 虽然STM32外部需要使用3.3V供电&#xff0c;但内部核心电路CPU、外设和存储器使用1.8V供电即可&#xff0c;这3者需要与外界交流时才需要3.3V供电 从上…

第一课,认识C++,和计算机对话

一&#xff0c;编程是什么&#xff1f;C是什么&#xff1f; 编程是编写代码来实现需要的功能&#xff0c;C就是用来编程的语言&#xff0c;计算机没法直接听懂人类的语言&#xff0c;需要用编程语言C来和计算机交流。 二&#xff0c;编程能做哪些事情&#xff1f; ①让机器人…

openwrt系统通过ZeroTier插件实现远程管理

OpenWrt是一款开源的路由器系统&#xff0c;可以自由安装各种插件&#xff0c;但由于是非商业化的系统&#xff0c;没有统一的云管理平台&#xff0c;所以远程管理相对麻烦&#xff0c;需要借助于第三方服务器。当然如果家里宽带有独立公网ip&#xff0c;还可以通过ddns实现远程…

只用一个 HTML 元素可以写出多少形状?——不规则图形篇(序)

上一篇章&#xff0c;我们的不规则图形篇发了之后&#xff0c;我一个朋友说我“良心发现”了&#xff0c;不提供新的知识点了&#xff0c;而是实实在在的一些案例直接丢给大家。 的确&#xff0c;前面的每一个篇章&#xff0c;我都有引入新的知识点。 规划这个系列&#xff0…

某系统接入网关任意文件读取漏洞

当你征服一座山峰时&#xff0c;它已经在你脚下了&#xff0c;你必须再找一座山峰去征服&#xff0c;否则&#xff0c;你只有下山&#xff0c;走下坡路了 漏洞描述 某系统接入网关存在任意文件读取漏洞&#xff0c;攻击者通过构造请求可以读取服务器任意文件 漏洞复现 访问…