python爬虫中关于弹窗和验证码解决思路!

本篇博客分享关于我在爬虫中如何解决弹窗,以及解决验证码的一种思路,仅作为参考,不同网站和不同验证码可能不能如法炮制,如果不能完全实现,请原谅! 时间: `2020年8月`
分类: 其他 发布时间: 08-05 22:51 阅读次数: 0

[Redis入门到精通day02]redis入门、安装及常用类型与常用操作命令

Redis入门到精通day02一、Redis简介Redis(remote dictionary server) 远程字典服务器1.特点redis和其他KV缓存产品有以下三个特点:1.持久化,重启后可以再次家在使用2.数据类型丰富,同时提供list,set,zset,hash等数据结构存储3.支持数据备份,即master-slave(主从模式)数据备份2.作用1.内存存储和持久化,支持异步写入同时不影响服务2.支持取n个数据的操作3.模拟类似于HTTPSession这种类型的设定过期时间
分类: 其他 发布时间: 08-05 22:51 阅读次数: 0

[JVM学习之路]三、运行时数据区的内部结构详解(一)(程序计数器、虚拟机栈和本地方法栈)

运行时数据区的内部结构(程序计数器、虚拟机栈和本地方法栈)一、运行时数据区结构图源-阿里JDK8以后,原来的方法区变成了元数据区+JIT编译产物在JVM运行的时候,有些区是随着进程而存在消亡,而有些是随着线程在图中红色的方法区和堆是随着JVM的生命而创建和消亡,也就是对应着JVM进程,是进程中所有的线程所共有的;而图中灰色区域则是与使用的线程进行一一对应,是每个线程所私有的。也就是说,每个线程独立享有:程序计数器,本地方法栈,虚拟机栈;而所有线程共享的是堆和堆外内存(元空间)调优都是在元
分类: 其他 发布时间: 08-05 22:51 阅读次数: 0

[算法练习-剑指offer]题21.栈的压入、弹出序列(Java)

题目题号:21题目名:栈的压入、弹出序列编程语言Java题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)初次思路入栈所有元素后,要是能按照数组出栈所有元素,那就可以如果无法出栈所有元素,就不可以最后返回是否Stack为空就行了解
分类: 其他 发布时间: 08-05 22:50 阅读次数: 0

[算法练习-剑指offer]题22.从上往下打印二叉树(层序遍历二叉树)(Java)

题目题号:22题目名:从上往下打印二叉树(层序遍历二叉树)编程语言Java题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。初次思路非常经典的广度优先遍历BFS层序遍历,使用队列解题代码public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { /** * 看题目描述.很明显就是层级打印
分类: 其他 发布时间: 08-05 22:50 阅读次数: 0

[算法练习-剑指offer]题23.二叉搜索树的后序遍历序列(Java)

题目题号:23题目名:二叉搜索树的后序遍历序列编程语言Java题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。初次思路首先要了解什么是二叉搜索树二叉搜索树简而言之就是一个树结构的根节点要大于所有他的左子树的值,小于右子树的值而后序遍历就是【左,右,根】的输出顺序然后进行递归校验要注意的是,题目没给出非空校验的条件,这里与递归函数的非空校验不一样,所以换了个函数去调用递归,不然通过不了用例
分类: 其他 发布时间: 08-05 22:50 阅读次数: 0

[JVM学习之路]五、堆(一)堆的内存结构、参数设置、分代思想、内存分配策略及TLAB

堆(一)一、堆的核心概述堆的特点:1.一个jvm实例只存在一个堆内存,堆也是java内存管理的核心区域2.Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间(堆内存的大小是可以调节的)3.《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。4.所有的线程共享java堆,在这里还可以划分线程私有的缓冲区(TLAB:Thread Local Allocation Buffer).(面试问题:堆空间一定是所有线程共享的
分类: 其他 发布时间: 08-05 22:50 阅读次数: 0

[JVM学习之路]四、本地方法接口概念

四、本地方法接口简单来讲,一个Native Method就是一个java调用非java代码的接口一个Native Method 是这样一个java方法:该方法的底层实现由非Java语言实现,比如C。这个特征并非java特有,很多其他的编程语言都有这一机制,比如在C++ 中,你可以用extern “C” 告知C++ 编译器去调用一个C的函数。定义一个native方法时,用native关键字修饰,但是不能和abstract搭配。没有具体实现体public class IHaveNatives {
分类: 其他 发布时间: 08-05 22:49 阅读次数: 0

[算法练习-剑指offer]题24.二叉树中和为某一值的路径(Java)

题目题号:24题目名:二叉树中和为某一值的路径编程语言Java题目描述输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。初次思路有一说一,题目描述阅读比题难简而言之就是给你一个数,你找到从根节点到叶子节点所有值加起来等于target,将所有值放到一个数组返回。很明显就是dfs,需要注意的是要用减枝回溯提高速率解题代码public class Solution { Arra
分类: 其他 发布时间: 08-05 22:49 阅读次数: 0

[算法练习-剑指offer]题25.复杂链表的复制(Java)

题目题号:25题目名:复杂链表的复制编程语言Java题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)初次思路暂时理解这个题目的意思是一条链表,上面的结点会有一个next指针,还有一个random指针,这个random指针是连在链表上的一个随机一个结点的,这个是重点.一下就能想到的就是暴力法按逻辑来
分类: 其他 发布时间: 08-05 22:49 阅读次数: 0

[算法练习-剑指offer]题26.二叉搜索树与双向链表(Java)(存疑)

题目题号:26题目名:二叉搜索树与双向链表编程语言Java题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。初次思路二叉搜索树的中序遍历就是递增的中序遍历是,左根右的遍历那么只要把二叉搜索树进行递归,然后重构一个双向链表就行重点有:在遍历的时候要将前置结点连向当前结点,当前节点的前驱连向前置结点,然后再将前驱后移,换下一个结点这里有一个疑惑?双向链表不是要头结点前驱连向尾巴结点,尾巴结点后继连向头结点???为什么
分类: 其他 发布时间: 08-05 22:49 阅读次数: 0

[JVM学习之路]五、堆(二)对象分配逃逸分析相关内容

堆(二)对象分配逃逸分析相关内容提问:堆是分配对象的唯一选择吗?初步结论:如果经过逃逸分析(Escape Analysis)后发现,一个对象并没有逃逸出方法的话,那么就可能被优化成栈上分配。这样就无需在堆上分配内存,也无须进行垃圾回收了。这也是最常见的堆外存储技术。栈上分配无序GC,随方法结束而弹栈,以此达到降低GC的回收频率和提升GC的回收效率的目的。一、逃逸分析对象是否发生逃逸,需要分析对象的动态作用域:如果一个对象在方法中被定义后,对象只在方法内部使用,则被认为没有发生逃逸如果一个对象在
分类: 其他 发布时间: 08-05 22:48 阅读次数: 0

[算法练习-剑指offer]题27.字符串的排列(Java)(存疑)

题目题号:27题目名:字符串的排列编程语言Java题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。初次思路https://leetcode-cn.com/problems/permutations-ii/与力扣47题全排列 II类似要点是有重复,但是要输出所有不重
分类: 其他 发布时间: 08-05 22:48 阅读次数: 0

[算法练习-剑指offer]题28.数组中出现次数超过一半的数字(Java)(摩尔投票法)

题目题号:28题目名:数组中出现次数超过一半的数字编程语言Java题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。初次思路这道题思路很明确,我首先应该假设他必然存在多数.如果他存在多数,那么通过博弈,最后一定会剩下一个数,这个数就是多数现在加入没有多数的情况,那我重新遍历一次数组统计看,是不是多数就行了,对时间复杂度影响
分类: 其他 发布时间: 08-05 22:48 阅读次数: 0

[算法练习-剑指offer]题29.最小的k个数(Java)

题目题号:29题目名:最小的k个数编程语言Java题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。初次思路直接暴力法解决除去异常状况,首先把需要的k的数加入到集合中对集合排序后,然后看新的数是否小于集合最后一个数,如果比最后一个数小,说明可以放入集合从集合第一个开始找插入位置,找到后把最后一个删除解题代码public class Solution { public ArrayList<In
分类: 其他 发布时间: 08-05 22:48 阅读次数: 0

[算法练习-剑指offer]题30.连续子数组的最大和(Java)

题目题号:30题目名:连续子数组的最大和编程语言Java题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是
分类: 其他 发布时间: 08-05 22:47 阅读次数: 0

[Redis入门到精通day03]redis配置、持久化及事务详解

Redis入门到精通day03一、解析配置文件1.通用配置#是否设置为守护模式yes/nodaemonize yes#设置进程锁文件 pidfile /usr/local/redis/redis.pid #设置端口port 6379 #TCP 监听的最大容纳数量,默认511tcp-backlog 511 #客户端超时时间默认为0永不超时timeout 0 bind #心跳检测,默认值为0tcp-keepalive #日志级别,debug(测试开发阶段)
分类: 其他 发布时间: 08-05 22:47 阅读次数: 0

[JVM学习之路]七、方法区的内存结构、演变细节和垃圾回收

方法区一、栈、堆、方法区的的交互关系二、方法区相关理解方法区别名”Non-Heap“非堆,被看做是一块独立于Java堆的内存空间1.方法区特点方法区(Method Area)与Java堆一样,是各个线程共享的内存区域方法区在JVM启动时就会被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连续的方法区的大小,跟堆空间一样,可以选择固定大小或者可拓展方法区的大小决定了系统可以保存多少个类,如果系统定义了太多的类,导致方法区溢出,虚拟机同样会抛出内存溢出错误:java.lang
分类: 其他 发布时间: 08-05 22:47 阅读次数: 0

[算法练习-剑指offer]题31.整数中1出现的次数(从1到n整数中1出现的次数)(Java)

题目题号:31题目名:整数中1出现的次数(从1到n整数中1出现的次数)编程语言Java题目描述求出1-13的整数中1出现的次数,并算出100-1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。初次思路暴力法每个数字得到位数上的数,如果这位置上的数是1/10能够去掉最后一
分类: 其他 发布时间: 08-05 22:47 阅读次数: 0

[算法练习-剑指offer]题32.把数组排成最小的数(Java)

题目题号:32题目名:把数组排成最小的数编程语言Java题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。初次思路这里一开始想用暴力法,但是暴力法会超时后面参考了一个大佬的思路,使用排序递推公式如果s1+“s2”>“s2”+“s1”,那说明在集合中应该将s2排在前,s1排在后就可以满足最小的字符串组合例如10和1,“10”+“1”=“101”;
分类: 其他 发布时间: 08-05 22:46 阅读次数: 0