- 博客(44)
- 问答 (9)
- 收藏
- 关注
原创 小红薯x-s算法最新补环境教程12-06更新(下)
在上一篇文章中已经讲了如何去定位x-s生成的位置,本篇文章就直接开始撸代码吧1、获取加密块代码 首先来到参数生成的位置,点击 F9 进入加密的位置 可以看见加密的代码就是在这一块,直接全扣就可以了 扣下来一共有两千多行,把调用的位置放在最下面尝试执行一下 2、使用补环境框架,把代理挂上在代码的最上方运行
2024-12-06 16:18:39
744
原创 小红薯x-s算法分析最新12-06(x-s 56)(上)
目标-小红薯达人作品:aHR0cHM6Ly93d3cueGlhb2hvbmdzaHUuY29tLw==1、确定目标 打上xhr断点 发现是异步请求,同时各个参数已经生成结束了2、进入第二个异步函数 打上断点并继续运行 发现在e这个位置也生成了,那么再继续往上找异步参数进行断点
2024-12-06 16:18:00
390
原创 DrissionPage被检测 DrissionPage检测点处理方案
想要完美过run_js的检测,那么就要保证JS可以正常执行,同时不会被hook到特征,思路如下:1、在页面加载时,率先把dp需要执行的函数保存到自定义对象中2、将dp源码中的执行的这些函数改为执行自己提前保存好的函数
2024-12-05 16:08:06
1592
原创 爬虫与反爬-旋转验证码突破方案(知名短视频、TK海外版 及 某东等等)
概述:文本对旋转验证码进行了突破及讲述了实现原理,代码使用纯算法 OpenCV,使用代价较小同时不用安装一大堆AI训练相关的模组,方便且能够快速上手等等使用了旋转验证码的网站基本上是旋转验证码的网站都能过。实现原理:使用opencv对两张图片进行合并,同时从0度开始,1度1度的旋转,选择像素相似度最高的一个度数
2024-11-27 18:17:07
1685
原创 爬虫与反爬-Ja3指纹风控(Just a moment...)处理方案及参数说明
本文将针对Ja3 指纹检测风控进行处理,举例了一个案例并使用两种不同的破解方案进行突破。1、使用大佬改魔改的 curl_cffi 模块进行请求,但这种由于封装的太过于完善了,好处是用法简单,坏处是不能 “随心所欲”; 2、使用pyhttpx 或 request-go 等模块进行自定义 ja3 指纹进行请求; 3、使用 js、go语言发起请求能够有效解决(因为主要讲的是python我这里先pass了)
2024-11-23 15:08:16
3214
原创 爬虫案例-亚马逊反爬分析-验证码突破(x-amz-captcha)
总体概览:核心主要是需要突破该网站的验证码,成功后会返回我们需要的参数x-amz-captcha,接着再去请求一个中间页(类似在后台注册一个session)目前是有两套方案的(1、直接正面突破验证码 2、通过修改指纹来绕过验证码),本文先讲如何直接正面突破验证码,方案2后面有机会再讲难度:三颗星(适合小白、初级跟中级学习)
2024-05-21 20:55:00
3371
13
原创 解码时出现UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xfc in position 401201: invalid start byte
在base64解码时出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 401201: invalid start byte的错误,原因是文本中有一些字符串不支持 "utf-8" 的解码
2024-01-10 20:46:10
1020
原创 爬虫与反爬-localStorage指纹(某易某盾滑块指纹检测)(Hook案例)
LocalStorage 是一种 web 端的存储机制,主要用于在本地上存储一些用户的信息从反爬的角度上看,在一些网站中,他会将一些指纹数据(如设备信息,版本号,鼠标,用户行为等等)存储在LocalStorage中用于反爬的计算,通过分析这些参数是否异常来判断是否为爬虫。
2024-01-02 19:35:16
2513
1
原创 五秒盾解决方案
加密方式:五秒盾 Cloudflare解决方案:使用docker中的内置浏览器步骤一、在Linux中使用Docker命令docker上安装内置浏览器步骤二、开启服务器的端口,令外界与服务器可以通信步骤三、对服务器传入待访问的URL,返回html响应数据
2023-10-23 16:48:08
1461
原创 npm报错:xxx packages are looking for funding run `npm fund` for details(解决办法)
报错原因:这里是开发者捐赠支持的提示,打开一个github的链接之后,会显示是否需要打赏捐赠的信息。解决方案:这个打赏是资源的,因此我们选择不打赏(即在后面加 --no-fund)即可解决。如:在本次执行的语句为 npm install crypto-js则我们在后面加上 --no-fund 即可解决:npm install crypto-js--no-fund
2023-08-24 15:34:42
11128
原创 Flask的用法
Flask一般分为两部分,一个是服务端,一个是客户端(请求方)。# 服务端代码,可以在本地执行也可以在Linux上执行from flask import Flask,requestapp = Flask(__name__)# 在本地启动名为 get_hello 的接口,同时设置请求方式@app.route('/get_hello', methods=['GET','POST'])def hello(): return "Hello, World!"
2023-08-21 11:37:24
1416
原创 SQL两张表数据对比
SQL两张表数据对比1、查询两表的数据差异:SELECT DATA FROM data1 WHERE ( DATA ) NOT IN ( SELECT DATA FROM data2 );
2023-08-17 14:47:49
1214
原创 爬虫案例-使用Session登录指定网站(JS逆向AES-CBC加密+MD5加密)
总体概览:使用Session登录该网站,其中包括对password参数进行js逆向破解(涉及加密:md5加密+AES-CBC加密)难度:两颗星目标网址:aHR0cHM6Ly93d3cuZnhiYW9nYW8uY29tLw==JS逆向部分总结:1、在登录的时候对password参数与时间戳拼接;2、对账号参数切及时间戳的拼接;3、将部分关键数据转数组后先进行MD5加密处理;4、最终将前面数据全部拼接对数据使用AES下的CBC加密5、得到password的参数之后使用req
2023-06-09 18:02:29
4271
原创 记录:Error [ERR_REQUIRE_ESM]: require() of ES Module not supported.报错
记录:在js中导入jsencrypt模块时,出现Error [ERR_REQUIRE_ESM]: require() of ES Module xxxxx from xxxxx not supported.报错1. 按照提示语将jsencrypt.js 重命名为 jsencrypt.cjs2. 将上一级目录中的package.json 下的 main 值同步修改为刚刚重命名的文件,即"main": "bin/jsencrypt.js", --->> "main": "bin/jsencrypt
2023-02-07 10:45:17
5770
原创 如何在GitLab上传本地项目
上传前需准备:需要安装Git,点击进入官网下载:Git在本地上传GitLab项目的步骤目录介绍:一、配置SSH秘钥(仅针对本机首次上传GitLab项目)二、上传项目1、新建一个空文件夹,并在该文件夹下右键打开Git Bash2、在Git Bash中进行登录操作3、下拉文件到本地4、上传文件到数据仓库5、提交数据参数的文件
2023-01-09 17:43:22
20742
原创 MongoDB数据去重(单字段和多字段去重)(百万级数据)
MongoDB数据去重(单字段和多字段去重)(百万级数据处理)1、打开Mongo数据库,查询是否有数据重复①、查询DB_Name数据库中的item_id字段重复数据:2、数据去重处理原理:先将重复的数据加入到一个数组dups中,然后再利用forEach循环将dups数组的数据全部删除
2023-01-03 11:20:48
14048
3
原创 JS逆向---获取某知名外卖平台数据(_token)
JS逆向---获取知名外卖平台加密数据(_token)本文将对一大家都用过的外卖平台的 _token参数进行逆向解析,源代码放在末尾,可自行使用。下列文章分为四个部分:第一步:找到主体加密函数第二步:分析加密函数第三步:调试、补充JS代码和伪装环境第四步:调用程序............
2022-08-30 20:13:03
4282
4
原创 AES加密和解密详解
以AES-CBC为例:本文使用的是cyrpto-js库,cyrpto-js是js专门用来加密和解密用到的一个库。结束后会发现多了 一个文件夹,说明安装成功了。
2022-08-16 16:04:19
5861
原创 Python MD5加密
python中的md5加密是主要是通过hashlib完成的,加密的代码是固定的(除非遇到魔改md5加密的网站(非常少有这种情况))
2022-08-02 16:57:01
6070
原创 隐藏selenium特征webdriver
在爬取网站的时候selenium的webdriver特征值太过显眼了,非常容易被检测出来从而导致在进行一些自动化登录爬取验证等操作时候无法正常工作,我们需要将这些特征值隐藏起来from selenium import webdriverchrome_options = webdriver.ChromeOptions()chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])chrome_op
2022-05-02 00:56:48
3015
原创 批量爬取百度图片
输入关键字和要爬取的数量,直接爬取图片并保存到本地,这个比较简单,直接使用即可import requestsimport jsonword = input("输入您需要爬取的关键字:")page_num = int(input("需要爬取多少页(一页30张):"))headers = { 'Referer': 'https://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&am...
2022-04-29 21:03:32
953
6
原创 python使用execjs执行js、传入参数时出现UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x80 in position
报错:解决方法:修改编码文件的默认编码格式为utf-8(默认为gbk)点击进入并修改:将encoding修改前一定一定一定要备份!!!!到时候改错了可以再改回来最后运行就成功了...
2022-04-29 17:30:50
1947
原创 JS逆向解析---某知名小说网站内容加密
该小说网站的全部内容都是经过一个JS的加密,要想爬取这个网站那么将其内容解析是不可避免的,本文将讲解如何对其进行JS的逆向解析。网站:shuqi随便点开一本书,打开浏览器自带的抓包工具:
2022-04-27 23:52:05
4980
1
原创 python搭建ip池(多线程)
之前有讲过怎么搭建ip池,但由于单线程的效率太低,于是我们升级改造一下,将单线程变成多线程来搭建ip池,之前的方法可以参考一下:python搭建ip池(如果会简单的request和提取文字就可以直接不看)本文将会重点放在多线程的部分。过程分为两部分:一、从网站上获取所有的ip信息1、获取待爬取的url列表2、对多线程类进行重写3、多线程访问前面获取的url列表,获取ip信息4、将爬取的ip信息提取并处理,返回一个列表,方便后续的保存5、将ip信息保存到本地csv二、将爬.
2022-04-27 01:40:00
3277
1
原创 多线程任务分配(列表切割,有多少线程切割多少个列表)
在设置多线程的时候,要先将原本待传入的参数列表进行一个平均的切割,从而达到平均分配给各个线程任务的效果,切割方法如下:def split_list(list,thread_num): list_total = [] num = thread_num # 线程数量 x = len(list) // num # 将参数进行分批(5批)方便传参 count = 1 # 计算这是第几个列表 for i in range(0, len(list), x):
2022-04-26 23:44:38
948
原创 Scrapy实战案例--抓取股票数据并存入SQL数据库(JS逆向)
目标网址:http://webapi.cninfo.com.cn/#/marketDataZhishu之前在这篇文章里面对巨潮的JS进行了一个逆向的解析:JS逆向解析-巨潮证券市场数据库(python)接下来我们来创建一个Scrapy项目来爬取巨潮的数据并保存在数据库中过程:1、创建一个Scrapy项目2、将之前用于解析的JS文件放入项目中3、修改items.py文件,添加要爬取的数据表4、配置参数,修改setting.py5、补充spiders文件夹下的核心文件6、进入
2022-04-22 23:38:32
1692
原创 JS逆向解析案例-巨潮证券市场数据库(python)
目标网址:http://webapi.cninfo.com.cn/#/marketDataZhishu解析重点: 目标网址在爬取时必须携带mcode参数,否则会出现无授权访问报错,而mcode刷新频率较高,因此在爬取该网站前必须要先通过js逆向来获取mcode参数。正文开始:1、先右键点击审查元素,搜索网页中需要爬取的数据(找出数据放在哪个包中)很明显在第二个包中,点击进入,很明显这个就是我们需要的数据2、找到mcode参数所在的位置此时有...
2022-04-14 15:49:49
1729
2
原创 python搭建ip池
在爬取网站的时候我们有时候会遭受封ip等显现,因此我们需要搭建自己的ip池用于爬虫。代码过程简述:1、爬取代理ip网站信息2、将获取的信息处理得到ip等关键信息3、保存首次获取的ip信息并检测其是否可用4、检测完毕将可用ip保存,搭建完成下面是搭建完后的ip池展示:老规矩先放总的代码后再一步步解析# -*- coding: gbk -*- # 防止出现乱码等格式错误# ip代理网站:http://www.66ip.cn/areaindex_19/1.htm.
2022-03-26 16:25:40
5957
原创 selenium操作大全含一个实例(直接获取cookie、token、html)
实例:用selenium实现自动化登录(以淘宝为例)一、Selenium中鼠标与键盘操作汇总1、click(on_element=None) ——单击鼠标左键2、click_and_hold(on_element=None) ——点击鼠标左键,不松开3、context_click(on_element=None) ——点击鼠标右键4、double_click(on_element=None) ——双击鼠标左键5、drag_and_drop(source, target) ——
2022-03-25 18:13:04
2636
原创 python + selenium实现自动登录操作(以淘宝为例)
selenium操作不熟练的可以查看一下这篇文章:selenium操作大全一、登录前准备操作定位一下相对应html位置,输入一般为input标签、登录按钮一般为button。输入账号密码那块:定位代码:driver.find_element_by_xpath('//input[@type="text"]').send_keys('账号xxxxxx') driver.find_element_by_xpath('//input[@type="password
2022-03-25 18:06:05
8953
2
原创 数据库系统工程师真题及详解(2015~2021)
2015—2021年软考中级数据库系统工程师真题及答案详解链接:https://pan.baidu.com/s/1VMXyrl1cBX-Gwoz0EU-Dow?pwd=nt0a提取码:nt0a据了解,考试试题大部分与历年真题相近。祝大家软考成功上岸!!部分内容展示(2021年应用题第一题)某社区蔬菜团购网站,为规范商品收发流程,便于查询客户订单情况,需要开发一个信息系统。请根据下述需求描述完成该系统的数据库设计。[需求描述](1)记录蔬菜供应商的信息,包括供应商编号、地址和一.
2022-03-17 15:07:37
8020
7
原创 SQL数据库插入、修改、删除及删除表中数据操作示例(insert、update)
目录:1、数据库的连接、创建2、对字段的操作:(alter table)3、SQL数据库插入、修改、删除操作4、数据库的查询操作大全(select)5、多表查询(join on)6、约束操作1、插入数据到末位(默认): Insert into 表名(字段1,字段2) values(字段1值,字段2值),(字段1值,字段2值); Eg:insert into t_emp(id,Name) value(1,'小明'),(2,'小黑'),(3,...
2022-03-15 19:04:25
16931
原创 SQL数据库的查询操作大全(select)
目录:1、数据库的连接、创建2、对字段的操作:(alter table)3、对数据的操作(插入、修改、删除)(insert)4、数据查询(select)5、多表查询(join on)6、约束操作select 字段名 from 表; In查询:用于过滤你所需要查询的内容select 字段名 from 表名 where 字段名 in(具体内容)3、范围查询between:select 字段名 ...
2022-03-13 21:01:07
26908
2
原创 SQL数据库对字段的操作(alter table)
目录:1、数据库的连接、创建2、对字段的操作:(alter table)3、对数据的操作(插入、修改、删除)(insert)4、数据查询(select)5、多表查询(join on)6、约束操作二、数据库对字段的操作(alter table)1、重命名表中的字段名:alter table表名 change旧字段名 新字段名 新数据类型;2、修改字段类型: altertable表名 modify字段名 新的数据类型;3、添加删除字段:...
2022-03-13 20:49:26
14536
原创 SQL数据库的连接、创建操作
目录:1、数据库的连接、创建2、对字段的操作:(alter table)3、对数据的操作(插入、修改、删除)(insert)4、数据查询(select)5、多表查询(join on)6、约束操作一、数据库的连接、创建1、连接root数据库(cmd中输入): mysql -u root -p 2、查看所有数据库: show databases; 查看数据库所有表: 先use数据库再 show tables;3...
2022-03-13 20:44:15
5234
原创 Python连接MySQL数据库
一、准备模块python连接SQL数据库首先需要用到 ”pymysql“ 模块,这里使用pip install指令来安装步骤如下:1、在安装的python的路径下找到Scripts文件夹并打开,在路径上面写成“cmd”后回车2、进入这个界面后输入pip install pymysql 开始安装二、连接数据库用pymysql模块中的connect连接数据库,同时用cursor()函数创建游标,用于接收返回的结果。代码:import pymysql# ---------.
2022-03-12 23:38:05
27104
9
原创 Python爬取指定公众号文章
前言本文仅用于学习使用,不具有任何商业用途,如有问题请及时联系我们以作处理。一、数据准备1、在某信公众平台上注册一个账号用于获取关键数据2、注册完成后按照下面图文操作获取待爬取的公众号信息,搜索自己想要的公众号点击进入待爬取的公众号,然后在浏览器上鼠标右键点击查看审核元素,点击网络(即network)找到"appmsg"开头的文档打开。下面我们来解析一下这份文档:1、URL:从这可以看出该文档基本url为:问号前面这部分2、cookie:...
2022-03-12 16:30:44
3396
3
原创 JAVA 简易登录界面实现 输入账号密码错误三次自动退出(超简单)
成果图:输入账号密码错误三次自动退出步骤:1、声明变量:提示语JLabel、文本输入框JTextField、按钮:JButton2、设置提示语、文本框并加入JPanel中3、添加设置按钮、并给按钮添加监听器addActionListener4、修改外观、设置边框大小5、后端部分(当按下按钮后响应结果)全部代码:import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.e.
2021-12-06 22:09:17
4827
1
原创 python 列表的基本用法大全 列表排序、求值、处理等等
本文包含python列表必须掌握的基本用法 如列表的修改、切片、排序、求值等等。目录:1、列表元素增加删除 2、列表切片读取 3、求列表最大值、最小值、求和、平均数 4、列表排序 5、统计某元素出现次数一、列表元素增加删除1、创建列表 2、增加列表元素 3、获取指定元素索引 4、通过下标删除列表元素 6、删除指定元素 7、求列表...
2021-11-29 02:07:44
1006
selenium的环境js文件代码,亲测淘宝等多个大型网站可用
2023-07-12
爬虫案例-登录发现报告网(md5加密+AES-CBC加密)
2023-06-08
数据库系统工程师真题及详解(2015~2021)免费送
2022-03-16
xpath遍历节点时遇到无标签的文本节点需要怎么遍历
2023-07-20
python处理excel表格
2022-08-22
怎么让py多次调用自执行的js文件时只自执行一次
2022-08-19
把下面函数转为多线程运行
2022-05-04
怎么输出一个26字母和0-9数字 不同长度组合
2022-05-04
在selenium登录某宝时遇到网站Deprecation异常
2022-05-02
如何用selenium解决滑块验证
2022-04-24
怎么用selenium解决滑块验证
2022-04-22
selenium登录淘宝时怎么才能不被检测出来
2022-04-20
定义一个方法,保存多个字典到csv中
2022-04-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人