Python中实现根据视频链接下载MP4视频
前言分别提供了单线程下载,和异步下载只需要在数组 urlData[ ] 中添加需要下载的链接即可注意:批量下载的时候尽量加延迟,避免网站有反爬机制封掉ip
代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111# -*- coding: utf-8 -*-import requestsfrom tqdm import tqdmimport osimport base64from cryptography.fernet import Fernetimport aiohttpimport asyncioimport uuidimport uvloopfrom pymysql import *tr ...
Python中实现根据抖音短视频分享链接解析获取有效的视频详情
前言主要是为了抖音短视频:带水印视频链接、不带水印的视频链接、视频文案、作者信息
代码如果不进行数据库相关操作,可以将from pymysql import * # 引入数据库依赖from pymysql.converters import escape_string # 入库字符转义这两个依赖干掉
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697import reimport jsonimport requestsimport webbrowser# 引入数据库依赖from pymysql import *# 入库字符转义from pymysql.converters import escape_string # 根据DY视频分享链接,获取视频链接def getD ...
SpringBoot中如何使用注解方式防抖或访问限制
前言关于恶意访问的锁在上一篇文章中实现了【(SpringBoot中如何使用注解方式拦截恶意访问的IP)[./259988aa]】这里依旧使用Redis锁,通过自定义注解的方式进行拦截,方便重复调用使用。Redis的配置需要自行配置
后端代码依赖引入 pom.xml和 yml配置文件中配置Redis12345<!-- redis 缓存操作 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>
1234567891011121314151617181920212223spring: # redis 配置 redis: # 地址 host: 127.0.0.1 # 端口,默认为6379 port: 6379 # 数据库索引 database: 0 # ...
SpringBoot中如何使用注解方式拦截恶意访问的IP
前言针对有人频繁重复调用接口,进行恶意访问,例如使用爬虫一类,对服务造成巨大负担,所以需要在接口上进行拦截。这里利用Redis锁,通过自定义注解的方式进行拦截,方便重复调用使用。我采用的是使用单机SpringBoot + Redis的方式进行处理,没有用分布式锁Redis的配置需要自行配置
后端代码依赖引入 pom.xml和 yml配置文件中配置Redis12345678910<!-- redis 缓存操作 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- pool 对象池 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>c ...
简单分析一下房贷利率LPR及利息计算
前言由于博主近期有购房意向,毕竟是首套房,突然对LPR感兴趣了
其实…博主也是想利益最大话,所以就稍微研究了一下LPR及利息计算。
只要你认真看完这篇文章,各位观众也能轻松了解自己的钱花哪去了
LPR到底是什么?首先,需要了解下什么是LPR?什么是房贷利率?什么是利息?什么是等额本金?什么是等额本息?
在你说你有理我说我有理的时代,每个银行贷款利率都不一样,形成了“五代十国”的纷争局面。作为老百姓,谁的利息低,我就去找谁贷款,掰着脚丫子也肯定知道选利息少的嘛。由此可见,市场也是很混乱的……直到“宋朝”的实现了统一,额……就是LPR的出现。
LPR 就是由国家牵头,组织一群银行(工行、建行、农行、中行、邮储等)开会,大伙一起来制定一个相对均衡的贷款利率标准。(去掉一个最高值,去掉一个最低值,取平均值,向0.05%的整数倍就近取整计算得出最终LPR)其实可以简单理解为:LPR是一个贷款年化利率的基础值
PS:LPR自2018年引入,以后的贷款,银行默认不再采用固定LPR,全部调整为 浮动LPR + 固定基点(BP) 方式
注意:LPR分为1年期 和 5年期的,1年期LPR利率运用到贷 ...
如何轻松在SpringBoot中正确配置并运行Kafka
引入maven依赖配置pom.xml,引入maven依赖
123456<!-- 引入kafka依赖 --><dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>2.8.6</version></dependency>
application.yml配置文件文章中只保留了在yml中的kafka相关配置
123456789101112131415161718192021222324252627282930313233343536spring: kafka: bootstrap-servers: xx.xx.xx.xx:9092 # kafka集群信息,多个用逗号间隔 # 生产者 producer: # 重试次数,设置大于0的值,则客户端会将发送失败的记录重新发送 ret ...
浅谈Java中ArraryList的浅克隆和深克隆
浅克隆浅克隆,将目标ArraryList每个元素对象的引用指向原始ArraryList对应元素对象在栈空间的内存地址。只是复制了原始ArrayList中元素对象的引用,目标ArrayList和原始ArrayList是一荣俱荣一损俱损的,并非实现真正意义上的“新的ArrayList”。简单来说,不管是改变原始ArrayList的中的元素对象,还是改变目标ArrayList中的元素对象,只要是浅克隆,所有的 目标ArraryList 和 原始ArraryList 也都会一起跟着发生改变
最常见的几种应用浅克隆的方式
list.addAll()将原始ArrayList整体添加到目标ArrayList中
使用 addAll(Collection<? extends E> c) 的语法,是将原始ArrayList整体添加的目标ArrayList的尾部。例如:desList.addAll(srcList)
使用 addAll(int index, Collection<? extends E> c) 的语法,其中index用于指定 collection 的第一个元素所插入 ...
Java如何实现微信扫一扫功能获取签名
流程:
前端请求后台接口,传入url
后端接收请求,处理业务逻辑,返回签名等参数1.获取token2.拿token获取ticket3.获取随机字符串(用自带的UUID就行)4.获取当前时间戳,记得除以1000(10位数) 例如:16261397225.拼接参数(url是前端传过来的)1String context = "jsapi_ticket=xxxx&noncestr=xxxx×tamp=xxxx&url=xxxx"6.参数SHA1加密7.封装,返回前端
分步骤解析:如果不想了解,直接去最下面Cope完整代码
获取tokenappid、secret、grant_type这三个值都是固定值前两个值是微信公众号开发者平台上的凭据,AppId 和 AppSecret微信公众平台凭据调试工具:微信公众平台接口调试工具appid:公众号的idsecret:公众号的秘钥grant_type:授权码发放类型(固定值:client_credential) grant_type=client_credential
1234567891 ...
关于JAVA中常见的几种基础排序算法
冒泡排序12345678910111213public static int[] maopaoSort(int[] arr) { //需进行length-1次冒泡 for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr;}
选择排序12345678910111213141516171819202122232425/** * 选择排序 * * @param arr */public static int[] xuanzeSort(int[] arr) { int minIndex = 0; //只需要比较n-1次 for (in ...
Java树形结构,适配前端Cascader级联选择器使用
Entity层实体类:BCategoryDict.java123456789101112131415161718192021222324252627import com.fasterxml.jackson.annotation.JsonFormat;import lombok.Data;import java.util.Date; /** * 业务-分类对象 b_category_dict * @author Xuedi * @date 2021-12-23 */@Datapublic class BCategory { private Long id; /** 父类别id */ private Long parentId; /** 祖级列表 */ private String ancestors; /** 分类名 */ private String name; /** 分类级别 */ private Integer level; /** 状态(0关闭 1开启) */ private Integer statu ...