自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 seleminue + requests 实现爬取若依框架数据

摘要:本文介绍了用seleminue + requests 实现爬取若依框架数据,重点是用seleminue驱动浏览器登录远程站点,然后用request实现快速爬取数据。第1部分:seleminue简介1.1 什么是seleniumselenium其官网的介绍是:Selenium 使浏览器自动化。 而已!你用这种力量做什么完全取决于你。主要是为了测试目的而自动化 Web 应用程序,但当然不仅限于此。无聊的基于 Web 的管理任务也可以(并且应该)实现自动化。selenium最初

2022-04-04 00:35:35 2862 1

原创 Rxjs filter应用案例

本文演示了Rxjs filter man的简单应用。首先在服务中引入Rsjs的相关包import { Observable } from 'rxjs';参考rxjs7: rxjs7 中文文档https://gitee.com/iceleee/rxjs7定义第一个异步调用方法: getRxjsFun1(){ return new Observable(subscriber => { subscriber.next(1); subscr.

2021-12-01 11:12:11 977

原创 Angular 父组件监听子组件事件--by EventEmitter

EventEmitter的一个典型应用就是父组件监听子组件的事件,子组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件。父组件绑定到这个事件属性,并在事件发生时作出回应。即:子组件发射-父组件接收-响应子组件的eventEmitter是一个输出属性, 通常带有@output()装饰器。子组件:<p>cp1 works!</p><button (click)="sendParent()">通过@Outp

2021-11-30 17:16:17 1264

原创 Angular中父组件获取子组件的数据、方法by @ViewChild

现有一个父组件app-news,一个子组件app-footer,现在想要在父组件中访问子组件中的数据和方法,实现方案如下。1.子组件中的定义定义被访问的变量和方法,完整代码如下:import { Component, OnInit } from '@angular/core';@Component({ selector: 'app-footer', templateUrl: './footer.component.html', styleUrls: ['./footer.comp

2021-11-30 16:23:19 1476

原创 安装angular集成其他模块组件的说明

在Angualr13 集成Echarts8.0这篇文章中介绍了集成的过程时有个细节:需要的包:ngx-echarts@8.0.0 see:https://www.npmjs.com/package/ngx-echartsecharts@5.2.2 see:https://www.npmjs.com/package/echarts要在Angualr中集成Echarts有两个依赖包分别是echarts和ngx-echarts,可是为何是这样的版本号呢,下面且听我慢慢道来。首先说说npmjs,...

2021-11-30 00:13:53 383

原创 Angualr13 集成Echarts8.0 亲测可用

在angualr高版本中集成Echarts的方法

2021-11-29 18:45:20 578

原创 只能在使用 “allowSyntheticDefaultImports“ 标志时进行默认导入

在一个项目中需要angular13使用echarts 3D曲面图,因此需要导入simplex-noise,用的是这个例子:Examples - Apache ECharts,把这个案例下载到本地是一个单独的Html文件:bar3d-simplex-noise.html,经过一番鼓捣,修改了这个了文件中注释,启用了一些引用终于可以在本地浏览器显示3D图形了,修改后的代码是这样:<!-- THIS EXAMPLE WAS DOWNLOADED FROM https://echarts.

2021-11-29 16:30:09 4531

原创 AirFlow 命令行

AirFlow 提供了丰富的命令,在Anaconda虚拟环境中安装airflow这个文章的基础上开始整理。首先从帮助信息开始:进入python36虚拟环境之后,执行airflow -h(python36) [root@localhost airflow]# airflow -husage: airflow [-h] GROUP_OR_COMMAND ...positional arguments: GROUP_OR_COMMAND Groups: celery

2021-10-15 11:34:02 3142 1

原创 vi颜色显示设置(centos7)

面对黑白的vi让人看起来很不爽,今天就来解决这个问题,方法就是安装一个vimyum install vim安装过程中会有个提示,输入y即可安装完成之后会在/usr/share/vim目录下创建两个文件夹:vim74和vimfiles[root@localhost 2021-10-13T00:00:00+00:00]# ll /usr/share/vimtotal 8drwxr-xr-x. 16 root root 4096 Oct 14 21:10 vim74drwxr-x.

2021-10-15 10:26:28 1704

原创 Anaconda虚拟环境中安装airflow

1.设置Pip镜像源 新建/home/.pip/pip.conf内容: [global]index-url=https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host=https://pypi.tuna.tsinghua.edu.cn2.进入到python36环境这里的python36环境是在Anaconda------环境管理这个章节里创建的,是一个包含python36的虚拟环境[roo...

2021-10-14 18:14:44 2838

原创 Anaconda------配置jupyter

jupyter的功能和作用无需多讲,根据Anaconda------环境管理中创建的python36,在这里演示一下如何在这个python36中配置jupyter并且在宿主机中访问到。环境:虚拟机IP:192.168.43.61宿主机IP:192.168.43.192操作系统:centos-release-7-2.1511.el7.centos.2.10.x86_64虚拟机:VirtualBox 6.1.24Anaconda版本:Anaconda3-5.2.0-Linux-x86_641

2021-10-14 16:02:56 787

原创 Anaconda------环境管理

Anaconda 中的Conda核心功能就是包管理和环境管理,可以根据需要安装不同版本的python,而且能自由切换。1. 创建新环境下面就创建一个名为python36的新环境,并且指定python版本是3.6 不用管是3.6.x,conda会为我们自动寻找3.6.x中的最新版本。conda create --name python36 python=3.6下面是详细的安装过程 :Solving environment: done==> WARNING: A newer

2021-10-14 11:36:57 3779

原创 Java代码显示服务当前内存情况

JVM 有两个经典参数:-Xms等价于-XX:InitialHeapSize,初始大小内存,默认物理内存1/64 -Xmx等价于-XX:MaxHeapSize,最大分配内存,默认为物理内存1/4我的电脑是物理是12GB,今天用代码来计算一下看看这俩参数和物理内存的关系是不是真的符合上面的关系,上代码:public class ShowMemory { public static void test_show_memory() { // 返回java 虚拟内存的总内存.

2021-08-09 23:35:00 660

原创 NotePad++正则表达式应用----字符串替换

在平时的工作中会有很多情况下需要使用到纯文本编辑器,NotePad++便是其中之一,今天介绍一下使用这个工具实现批量字符串替换的例子。如上图所示的文本,其中第一列是文本编辑器提示的行号,其中第1 、3、5、7、9、11、13、15行等等这些行是单独的数字,这个文件有500多行,想要把这些单独是数字的行的内容给去掉,如果是一行一行删除就太麻烦了,使用notepad++的正则查找替换则可以很轻松的解决。分析问题,这里是需要把单行中出现的数字结尾的行给替换掉,因此可以使用正则表达式\d+$首先用c..

2021-08-09 22:47:27 2317

原创 linux新安装JDK不生效的问题

本来新安装了jdk,但重新连接之后仍然显示老的jdk,根据下面的步骤就可以解决。1. which java2. which javac3. rm -rf /usr/bin/java4. rm -rf /usr/bin/javac5. ln -s $JAVA_HOME/bin/java /usr/bin/java6. ln -s $JAVA_HOME/bin/javac /usr/bin/javac7. 配置/etc/profile8.source /etc/profile..

2021-08-09 22:16:55 806

原创 jvm 性能调优工具之jps

jps是jdk提供的一个查看当前java进程的小工具,可以看做是JavaVirtual Machine Process Status Tool的缩写。非常简单实用。如果用过linux ps工具的话,可以理解jps是java提供的ps.命令格式:jps [options ] [ hostid ][options]选项 :-q:仅输出VM标识符,不包括classname,jar name,arguments in main method-m:输出main method的参数-l:输出完全的包...

2021-08-09 16:00:58 407

原创 Java中Runnable和Thread的区别

很多时候我们都知道在Java中创建线程的方式有最常见的两种:实现Runnable接口 继承Thread类其实我也是这样认为的直到有一天无意中看到了Runnable和Thread源码,才真正明白了其中的道理。Runnable源码:@FunctionalInterfacepublic interface Runnable { /** * When an object implementing interface <code>Runnable</code&gt

2021-08-09 11:08:24 149

原创 Java线程死锁以及问题定位

死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉那它们都将无法推进下去,如果系统资源充足,进程的资源请求都能够碍到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。产生死锁主要原因:系统资源不足 进程运行推进的顺序不合适 资源分配不当发生死锁的四个条件:互斥条件,线程使用的资源至少有一个不能共享的。 至少有一个线程必须持有一个资源且正在等待获取一个当前被别的线程持有的资源。 资源不能被抢占。 循环等待。如何解决死锁问.

2021-08-08 16:54:52 3150

原创 Java多线程Lock与Condition的应用

在某些情况下为实现精确唤醒某个线程,需要使用Lock与Condition组合来实现,而synchronized则不大容易实现这个目标。例如有这个的需求:线程A输出5个数子,然后启动线程B输出8个数字,然后启动线程C输出11个数字,然后再次启动线程A输出5个数字,按照A->B-C的顺序循环3次,这个案例中明确要求启动线程有启动顺序。按照多线程编程的模式:1. 线程操作资源类2. 判断、干活(业务处理)、唤醒通知3. 严防虚假唤醒先定义个资源类ShareResourcenumber作为控

2021-08-07 22:09:19 275

原创 Java多线程并发实例生产者消费者--加锁实现

在这个案例中使用可重入锁来实现生产者消费模型。在这个案例中分别使用两个线程对同一个对象进行操作,实现生产一个商品消费一个商品的操作。多线程操作的三个重要步骤:1. 线程操作资源类2. 判断、干活(业务处理)、唤醒通知3. 严防虚假唤醒在资源类UserShareData中义了两个方法producer() 方法用于生产一个商品consumer()方法用于消费一个商品在producer() 方法遵循多线程处理的3个步骤,因为使用的加锁机制,所以基本模式是这样:加锁try{ 1.

2021-08-07 19:33:02 2707

原创 Java多线程并发实例生产者消费者--初级版本

在本例中演示了使用一个生产者线程和一个消费者线程,生产者仅能生产一个商品等待消费者消费,消费者把这个商品消费之后,等待生产者生产新的商品。最终要求的效果是:生产一个商品消费一个商品生产一个商品消费一个商品......要求共进行10轮操作多线程应用的3个重要步骤:1. 线程操作资源类2. 判断、干活(业务处理)、唤醒通知3. 严防虚假唤醒资源类是高内聚的,为方便操作,定义了必要的方法,在本例中使用synchronized+wait来实现同步操作Data类定义了两个方法produ.

2021-08-07 18:49:44 126

原创 Java中Semaphore(信号量)的使用

Semaphore的作用: 在Java中对于并发访问资源有多种控制方式,例如synchronized和可重入锁,CountDownLatch 、CyclicBarrier 等,这些工具的共同特征是某个时刻只允许一个线程访问某个共享资源,但是还是有很多情况下,是多个线程访问多个共享资源的,例如数量有限的停车位,旅游区女同志厕所的蹲坑,都是资源很有限客户有很多。这种情况下,Java提供了另外的并发访问控制--多线程访问多个资源的并发访问控制。Semaphore实现原理:Semaphore内部其实有...

2021-08-05 17:30:57 2681 1

原创 Python数据分析库pandas高级接口dt的使用详解

Series对象和DataFrame的列数据提供了cat、dt、str三种属性接口(accessors),分别对应分类数据、日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,本文着重讨论日期时间数据,先看一个完整的案例:import pandas as pd import numpy as np# 产生一个时间序列,从2021-5-1 00:00:00 到 2021-5-10 00:02:00 频率是日date = pd.date_range(start='2021-5-1 .

2021-05-11 16:36:08 1659

原创 Python中的*使用

*在Python中有很广泛的用途分两大类:第一类:单个*1.算数运算c = 90 * 3print(c)2702.函数形参假设有函数定义如下:def add(a,b): passadd(*args):* 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (23,35) ,那么这个代码就等价于 add(23,35) 。3.重复某个字符串或者列表第二类:多个*...

2021-05-10 14:25:22 160

原创 pandas读写csv excel pinkle 的性能比较

在数据分析工作中,csv、excel、pinkle这三种格式的文件经常会被用到,但是pandas读取这3种格式的数据究竟性能如何呢,我准备了13列 17519行的excel数据测试了一下,结果是这样: csv xls pickle 字节数MB 1.26 1.09 1.13 读数据耗费时间:秒 0.044 4.992 0.009 写数据耗费时间:秒 0.336 15.982 0.01 从这个测试结果可以得到以下结论.

2021-05-08 16:39:34 2248

原创 Pandas 横向数据汇总实例

在某些情况下需要对Excel中的数据做横向汇总,此时使用Pandas的将体现出很强的优势,请看下面的数据:表格中有5个子类别:类别1----类别5,每一行中至少有1个类别的值是1,表示当前行有多个类别类别属性两个汇总列:汇总类别1,汇总类别2汇总要求1. 类别1列中等于1的值,要替换成字符串 A类; 类别2列中等于1的值,要替换成字符串 B类; 类别3列中等于1的值,要替换成字符串 C类; 类别4列中等于1的值,要替换成字符串 D类; 类别5列中等于1的值,...

2021-04-27 11:48:27 1578 2

原创 python获取Pandas列名的几种方法

本文汇总了几种获得CSV Excel 文件字段列表的的方法,一起来看看吧下面几种方法的代码基于这样的测试数据:import pandas as pdfile = r'E:\数据分析\pandas_02\data.csv'df = pd.read_csv(file,engine='python')df1.通过columns字段获取,返回一个numpy型的arrayfields = df.columns.valuesprint(fields)['品牌' '价格..

2021-04-13 15:15:25 8667

原创 Python 合并多Excel案例

其实python有很多库都可以操作excel,比如xlrd,xlwt,但是xlwt只能写不超过65535行数据,有很大局限,因此我采用了openpyxl这个库读写excel。这个案例分成两部分:第一部分是创建多个excel文档,每个文档中有AB两个个sheet,每个sheet中有多列,多行。比如:第二部分是合并多个excel文档,把多个文件的多个sheet根据名称合并到对应的sheet,每个sheet中的列也需要对应起来第一部分:创建源文件思路是专业的1.创建单个文件2.创建多个sh

2021-04-08 12:09:07 341

原创 nginx返回动态日志

在很多情况下需要在windows系统下查看linux环境下中的某些系统的日志文件,其实方法有很多种,最长见的办法就是找个工具比如xshell链接到linux服器上直接查看文件,但是如果是不想暴露Linux服务器的登录信息,想用浏览器访问某个url直接查看日志文件该如何实现呢?今天就来介绍一个办法,亲测有效。比如我的环境是这样:[root@localhost nginx]# pwd/usr/local/nginx[root@localhost nginx]# tree logslogs├──

2021-01-05 11:30:11 670

原创 nginx访问静态资源文件配置

在某些情况下需要以web的方式访问静态文件资源,可以在nginx.conf的server中这样配置:server { listen 80; location /file/ { alias /home/; }}虚拟机的IP:192.168.43.52比如/home下的文件是这些:[root@localhost home]# lltotal 8-rw-r--r--. 1 root root 199 ..

2021-01-04 19:07:44 1858 2

原创 利用netstat查看PC的端口占用情况

有时候启动系统时发现端口被占用导致启动失败,如何能快速找到是哪个进程占用了我们的端口呢?其实只要简单两步就OK比如我的程序启动时需要监听8888端口。第一步:根据端口查找相关的进程需要用到natstat 命令,执行netstat /? 看看具体的帮助C:\Users\Administrator>netstat /?显示协议统计和当前 TCP/IP 网络连接。NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [.

2021-01-04 10:09:54 359

原创 SpringBoot的Cookie sameSite之坑

CSDN上很多文章给出了解决Cookie sameSite坑跨域之坑的解决办法,但是都忽略了一个问题,没有给出相关的依赖,我也是费了不少劲终于找到了解决办法,在这里记录下来。例如下面的代码:@Configurationpublic class TomatConfig { @Bean public CookieSerializer httpSessionIdResolver() { DefaultCookieSerializer cookieSerializer =

2020-12-30 09:06:45 2894

原创 springboot2 配置文件定义${user.name}内容失效问题解决方案

前言在一个测试项目中个自定义配置文件user.yml,其内容如下:user.name=zenninguser.address=北京市海淀区user.email=187435958@qq.com映射的配置类定义如下:@Component@PropertySource(value="classpath:user.properties")@ConfigurationProperties(prefix="user")public class User { private Str

2020-11-13 12:06:44 789

原创 spring boot 直接通过url访问外部静态资源图片

SpingBoot应用某些情况下需要外部的资源图片,例如要访问/home/app/img_test/images目录下图片,其实方法比较多,今天只介绍其中一种实现WebMvcConfigurer接口的addResourceHandlers方法。SpingBoot应用HTTP监听端口8182tomcat服务端口80801. 定义WebMvcConfiguration@Configurationpublic class WebMvcConfiguration implements WebMv

2020-11-09 17:01:35 2165 1

原创 Spring @Conditional注解 详细讲解及示例

前言:@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。@Conditional的定义:@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Conditional { Class<? extends Condition>[] value(

2020-11-06 10:39:59 284

原创 Vue 上传文件失败的解决方案

这篇文章是记录解决一个特殊问题的,方便以后查找。在一个项目中开发前端的同事使用Vue开发了一个上传文件的模块,但是无论如何就是无法提交这种POST请求给后台服务,具体的现象就是,前端界面上传文件时,Content-Type总是application/x-www-form-urlencoded,然后SpringBoot的后台服务就报错:Current is not a multipart request.表示这个请求错误。其实post上传文件时应该是Content-Type: multipart/fo

2020-10-29 21:56:26 6276

原创 SpringBoot集成knif4j创建在线API文档

一直以来能够创建一个同项目一起发布的在线文档,曾经是很多程序员的梦想,偶然发现这个工具已经有了,测试之后发现还挺好用的,特地纪念。这个工具就是knife4j,它是为Java MVC框架集成Swagger 生成Api文档的增强解决方案,其前身是swagger-bootstrap-ui。推荐采用了swagger的新增强版knife4j来生成API接口文档。knife4j的使用方法和swagger几完全一样。1.引入pom.xml依赖:<!--(老版本)引用依赖包--><d.

2020-09-27 20:51:12 1123

seleminue + requests 实现爬取若依框架数据完整源码

seleminue + requests 实现爬取若依框架数据完整源码,用到了存取cookie, 自定义request,实现了seleminue + requests 优点的结合。

2022-04-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除