前程无忧 阿里227滑块 分析

news2025/3/1 9:42:38

声明:
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!有相关问题请第一时间头像私信联系我删除博客!

主要代码

import json
import re
import time
from lxml import etree
import execjs
import requests
from urllib.parse import quote
from urllib.parse import parse_qs

session = requests.session()
cookies = {

}
requestId=""
for i in range(0,100):
    page = i+1
    keyword='数据分析'
    cp = execjs.compile(open('./前程无忧.js', 'r', encoding='utf-8').read())
    headers = {

    }
    ts=round(time.time())*1000
    if page==1:
        sign=cp.call('sign', ts, page, "no", None,keyword)
    else:
        sign=cp.call('sign', ts, page, requestId, None,keyword)
    headers['sign'] = sign
    params = {
        'api_key': '51job',
        'timestamp': ts,
        'keyword': keyword,
        'searchType': '2',
        'function': '',
        'industry': '',
        'jobArea': '030200',
        'jobArea2': '',
        'landmark': '',
        'metro': '',
        'salary': '',
        'workYear': '',
        'degree': '',
        'companyType': '',
        'companySize': '',
        'jobType': '',
        'issueDate': '',
        'sortType': '0',
        'pageNum': page,
        'requestId': '',
        'keywordType': 'guess_exp_tag6',
        'pageSize': '20',
        'source': '1',
        'accountId': '',
        'pageCode': 'sou|sou|soulb',
    }
    response = session.get('/search-pc', params=params, cookies=cookies, headers=headers)
        request_info_pattern = re.compile(r"var requestInfo = ({.*?});", re.DOTALL)
        match = request_info_pattern.search(response.text)
        if match:
            request_info_str = match.group(1)
            # 由于requestInfo对象是一个字面量,可以直接使用json.loads来解析
            # request_info = json.loads(request_info_str)
            # token = re.findall('token:.*,', request_info_str)[0].split("token: ")[1][1:-2]
            token="0b72f618-4c1-4aba-9a78-f" + str(ts-6666) + "ba"
            print(token)
            refer = re.findall('refer:.*,', request_info_str)[0].split("refer: ")[1][1:-2]
            args = "/api/job/search-pc?"+re.findall('args:.*,', request_info_str)[0].split("args: ")[1][1:-2]
            args_dict = parse_qs(re.findall('args:.*,', request_info_str)[0].split("args: ")[1][1:-2])
            sign=cp.call('sign',"","","",args)
            url1 = "/analyze.jsonp"
            n=json.loads(requests.get("http://localhost:3000/get227").text)['n']
            print(n)
            params = {
                "a": "CF_APP_WAF",
                "t": token,
                "n": n,
                "p":“”,
                "scene": "register",
                "asyn": "0",
                "lang": "cn",
                "v": "1",
                "callback": f"jsonp_{time.time()*1000}"
            }
            response = session.get(url1, headers=headers, params=params)
            data=json.loads(re.findall("{.*}",response.text)[0])['result']
            csessionid=data['csessionid']
            value=data['value']
            headers = {

            }
            params = {
                'api_key': args_dict['api_key'][0],
                'timestamp': args_dict['timestamp'][0],
                'keyword': args_dict['keyword'][0],
                'searchType': '2',
                'function': '',
                'industry': '',
                'jobArea': args_dict['jobArea'][0],
                'jobArea2': '',
                'landmark': '',
                'metro': '',
                'salary': '',
                'workYear': '',
                'degree': '',
                'companyType': '',
                'companySize': '',
                'jobType': '',
                'issueDate': '',
                'sortType': '0',
                'pageNum': args_dict['pageNum'][0],
                'requestId': '',
                'keywordType': args_dict['keywordType'][0],
                'pageSize': args_dict['pageSize'][0],
                'source': '1',
                'accountId': '',
                'pageCode': args_dict['pageCode'][0],
                'u_atoken': token,
                'u_asession': csessionid,
                'u_asig': value,
                'u_aref': "123",
            }

            response = session.get('/search-pc', cookies=cookies,
                                    headers=headers,params=params)
            print(response.text)
            data=json.loads(response.text)
            requestId=data['resultbody']['requestId']
            print('pass 滑块')
            continue
        else:
            print("No requestInfo object found.")
    data=json.loads(response.text)
    if data['resultbody']['requestId']:
        requestId=data['resultbody']['requestId']
        print(str(data)[0:1000]


结果

总结

1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。

2.侵权联系看头像首页。

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

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

相关文章

Qt下使用QtPdfium处理PDF文档

文章目录 前言一、使用QPdfDocument二、使用QtPdfium三、示例完整代码总结 前言 在我之前的文章中,有提到如何生成PDF,这个可以查看文末参考文章。如果要实现在Qt下进行PDF文档的处理(读取显示),可以使用自带的PDF库以…

Unity(2022.3.38LTS) - 基础概念

目录 一. 场景 二. 游戏对象 三. 组件 四. 标签 五. 静态游戏对象 六. 保存 一. 场景 Unity 场景是游戏或应用开发中的一个重要概念。 Unity 场景的组成元素: 它通常包含了各种游戏对象,比如 3D 模型、灯光、摄像机、脚本组件、音频源等等。 作用…

串列翼无人机技术详解

串列翼无人机作为一种特殊布局的飞行器,其概念可追溯至早期航空探索时期。随着航空技术的不断进步,尤其是复合材料、先进控制算法及动力系统的革新,串列翼无人机逐渐从理论走向实践。这一设计初衷在于通过前后两组机翼的巧妙布局,…

Redis Cluster集群

redis-cluster集群 Redis Cluster是Redis官方提供的分布式解决方案。当遇到内存、并发、流量等瓶颈时,就可以采用Cluster架构达到负载均衡目的。 1.Redis单实例主要有单点故障,容量有限,流量压力上限的问题。 Redis单点故障,可以…

全开源智慧停车场微信小程序源码/智能停车系统源码/停车自助缴费系统/停车场管理收费+物业管理+物联网+自助缴费功能

源码简介: 智慧停车场微信小程序源码,全开源智能停车系统源码,停车自助缴费系统,具有停车场管理、停车收费、物业管理、物联网、自助缴费等多种功能。 这是一个全开源的智能停车系统,功能强大。它不仅能帮你管理停车…

如何平衡冷数据(历史库)的成本与性能?| OceanBase应用实践

随着数据量的迅猛增长,企业和组织在数据库管理方面遭遇的挑战愈发凸显。数据库性能逐渐下滑、存储成本节节攀升,以及数据运维复杂性的增加,这些挑战使得DBA和开发者在数据管理上面临更大的压力。 为了应对这些挑战,对数据生命周期…

音频去噪:使用Python和FFT增强音质

根据定义,声音去噪是从音频信号中去除不需要的噪音或干扰,以提高其质量和清晰度的过程。这涉及识别和隔离噪音成分(通常以不规则或高频元素为特征),并将其过滤掉,同时保持原始声音的完整性。 声音去噪目标是改善聆听体验以及音频分析和处理的准确性。过滤掉噪音对于高保真音频…

SQL每日一练-0814

今日SQL题难度:★☆☆☆☆☆☆☆☆☆ 1、题目要求 找出每个部门中薪资最高的员工显示部门ID、部门名称、员工ID、员工姓名以及对应的薪资 2、表和虚拟数据 现有两个表:Employees 和 Departments,记录了员工和部门信息。 CREATE TA…

MySQL-进阶篇-索引

文章目录 1. 准备工作2. 索引概述2.1 什么是索引2.2 索引的优缺点 3. 索引的结构3.1 索引结构介绍3.2 二叉树3.3 BTree3.4 BTree3.5 MySQL 中的 BTree3.6 Hash3.7 思考题:为什么 InnoDB 存储引擎选择使用 BTree 索引结构 4. 索引的分类5. 索引的语法5.1 创建索引5.2…

html+css+js网页制作苹果助手pc1个页面(带js)

htmlcssjs网页制作苹果助手pc1个页面(带js) 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#x…

解决方案上新了丨趋动科技推出基于银河麒麟操作系统的异构算力池化解决方案

趋动科技携手麒麟软件打造基于银河麒麟操作系统的异构算力池化解决方案,共同探索AI领域新场景。 人工智能技术作为数字经济发展的重要推手,在各行业业务场景中落地需要大量AI算力资源的有效保障。在IT基础设施普遍云化的今天,AI算力一方面需…

【ai】Easy-RAG 不行啊,RAGFlow官方demo行

提取工程:graph-demo-ui.py 没有index.html 过不了。这俩可能是一样的 faiss db 看起来一直报错,txt 输入也不行。chroma 的问题是向量化ok,但是和大模型结合不行。easy-rag代码真不多 chroma db 下的操作 向量化竟然也成功了 问问题不行啊 /home/zhangb

Python 之Web应用开发(Flask框架)

一 Python 简介 1.1 Python是继C,java,C#等编程语言之后又一种面向对象的高级语言,凭借着简单的语法和和丰富的库,2015年开始迅速发展,到今天已成为排行前三的最受欢迎榜。 1.2 Python 应用领域非常广泛,…

华为的流程管理

华为建设流程体系始于2000年,那时华为公司面临着快速扩张和全球化发展的挑战,意识到传统的管理模式已经无法满足业务发展的需求。为了提高公司的管理效率和竞争优势,华为决定启动流程体系的建设。在建设过程中,华为借鉴了业界最佳…

SecureCRT for Mac/Win:安全高效的专业终端SSH工具软件

SecureCRT for Mac/Win是一款功能强大且安全可靠的专业终端SSH工具软件,专为网络管理人员、系统管理员和开发人员设计,旨在提供高效、安全的远程访问和管理解决方案。这款软件以其卓越的性能和丰富的功能,赢得了广泛的用户好评和信赖。 核心…

【Python机器学习】Apriori算法——使用APriori算法来发现频繁集

关联分析的目标包括两项:发现频繁项集和发现关联规则。首先需要找到频繁项集,然后才能获得关联规则。 APriori算法时发现频繁项集的一种方法。APriori算法的两个输入参数是最小支持度和数据集,算法首先会生成所有单个物品的项集列表&#xf…

【源码】Sharding-JDBC源码分析之Yaml分片配置原理(二)

Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…

奥运奖牌窥视

1 前言 2024巴黎奥运会已经闭幕了,中国队创纪录地获得了海外举办的奥运会的最佳成绩,我们来个管中窥豹,看看中国队从哪些项目中取得了奖牌。 2 奖牌组成 游泳真是大项,小项数量众多,比如个人自由泳就有100m、200m、4…

经纬恒润亮相第四届焉知汽车年会,功能安全赋能域控

8月初,第四届焉知汽车年会在上海举行。此次年会围绕当下智能电动汽车的热点和焦点,聚焦于智能汽车场景应用、车载通信、激光雷达、智能座舱、功能安全、电驱动系统等多个领域,汇聚了来自OEM、科技公司、零部件供应商、测试认证机构、政府院校…

顾客账单管理和台账-SAAS 本地化及未来之窗行业应用跨平台架构

一、客户账单对客户和企业的帮助 为您的企业客户打造便捷新体验!现在,企业客户做账消费后,可自行下载账单。这一创新举措不仅大大减少了公司售后的压力,更能助力企业客户提升办公效率。想象一下,无需繁琐的沟通与等待…