![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
知识点总结
文章平均质量分 63
Roxannekkk
这个作者很懒,什么都没留下…
展开
-
python爬虫 电商网站商品信息爬取
文章目录项目背景实现思路具体实现step1step1.1step1.2step2Reference项目背景需要获取京东的某一领域的商品信息数据,为后续项目推进做准备实现思路去获取每一个商品的数据首先需要去利用京东的搜索,利用关键字得到相关商品信息,由搜索结果去进行信息获取;这里以洗面奶商品举例:具体实现在搜索页面,我们关注的信息是每个商品的商品名称,商品价格,商品uid,商品备注,以及商品网址step1由观察可知,京东的搜索页面是动态加载的,数据会随着你的下拉而不断地加载出来,为了保原创 2022-01-09 22:53:01 · 13181 阅读 · 8 评论 -
python安装依赖导出
在导出python依赖时,发现的问题。原创 2022-10-24 14:35:07 · 899 阅读 · 1 评论 -
利用PicGo+Gitee配置图床
引言配置图床,方便我们的使用,比如,我们利用typora写的笔记,直接把发送给别人也可以正常使用,不再会有由于本地图片,而加载不出来图片的情况,此外,图片文件遗失亦可以正常加载出来,因为图片已上传;这里已 Typora+Gitee+PicGo为例进行配置安装PicGO下载链接Gitee仓库配置这里不做过多描述,不是难,相关教程也比较多。PicGo配置一般来说,下载gitee插件,进行配置即可,但是有的会出现403forbidden的情况,可以考虑使用github-plus插件下面分享原创 2022-04-25 12:56:14 · 684 阅读 · 0 评论 -
pytorch模型 推理部分的实现
如何实现模型推理部分原创 2021-12-19 16:50:43 · 2007 阅读 · 0 评论 -
原地哈希解决查找数组缺失重复问题
引言有这样一类题型,他需要你在给定的数组中找到缺失的值或者重复的值,当然你可以利用HashSet来做,遍历数组,存储每个元素,然后根据题目要求,即可以得到正确的解,但这样做也有一个问题,导致其空间复杂度为O(n)O(n)O(n),能否有一种方法,使得其既能完成题目要求,同时只用常数级别的空间呢,确实有,就是原地哈希思想原地哈希的思想可以理解为:把原始的数组当做哈希表来使用,我们自己编写哈希函数来存储值,根据题目的不同,所设置的哈希函数也不同。下面我们直接以例题分析,从例题中明白其中思想。实例原创 2021-08-05 14:18:55 · 261 阅读 · 0 评论 -
python中 将json数据转化为excel表格
json数据格式这里我需要进行数据转换的json数据格式有亿点复杂,为了方便我后续的处理,我想把他转换成excel来观察,json数据如下所示:借助python代码查看后,得知json数据构成:2500组数据,以列表形式存储,列表中的每一个元素构成是大小为2的列表,一号位为字符串 title ‘SH603919_2017-08-03_1203757451’,代表文档名称,而2号位为字典,包含了具体存储元素 {},如果我需要生成excel,重点在于第二个元素。两种形式转换为excel一、直接写入到e原创 2021-07-27 16:16:33 · 13655 阅读 · 0 评论 -
代码的执行顺序问题(以剑指 Offer 52. 两个链表的第一个公共节点为例)
引言代码的执行顺序对执行结果起着近乎绝对性的作用,同样的代码,顺序的不同,让结果大相径庭。下面以剑指 Offer 52. 两个链表的第一个公共节点为例,来说明。并提醒自己要注重细节问题,理清逻辑思路,才能正确执行代码;具体实例剑指 Offer 52. 两个链表的第一个公共节点题目内容题意不难理解,就是找出两个链表的第一个公共节点,没有返回null即可;这道题有很多种做法:利用暴力算法,对A链表的每一个节点,都在B链上进行比较判断,看是否有相同,注意不是判断p.val==q.val,而是原创 2021-07-06 15:09:05 · 117 阅读 · 1 评论 -
python进入并使用虚拟环境
虚拟环境创建,已经有很多的教程,在此不进行过多的阐述,这里我们主要进行虚拟环境的运行及使用这里以我的项目为例,展示运行流程在你构建并配置好你的虚拟环境后,想要使用,首先得利用终端(可以利用pycharm编译器提供的terminal),进入到虚拟环境的路径下 ,此处我的venv路径是cd D:\研究生文件\软件系统\envir_for_login\Scripts在Scripts目录下输入activate命令D:\研究生文件\软件系统\envir_for_login\Scripts>.原创 2021-04-07 17:42:19 · 14643 阅读 · 0 评论 -
python实现:生成指定元素个数的子集
背景目前所做的一个项目,需要进行数据的预处理,具体内容为对一句话进行分词,将分词的结果,进行组合,进而生成短语。将需求抽象成问题,即为对某个集合生成子集,但略微有所不同,因为分词的结果,数量可能很大,利用生成子集个数的计算公式X=2nX=2^nX=2n可知,当n很大时,子集个数成指数级增长,且根据我的实际需求,词组一般由1~3个词语组成,因此我们的问题变为了生成指定元素个数的子集问题对一个集合,生成指定元素个数的子集Example[1,2,3,4,5] 生成元素个数为3的集合=>34原创 2021-03-24 21:15:04 · 1728 阅读 · 5 评论 -
凸包求解三种实现
定理依赖:如果一个点在平面上某三个点组成的三角形内,那么这个点不可能是凸包上的点需要的基本知识叉积的计算:a(x1,y1) b(x2,y2)=> axb=x1y2-x2y1转换到代码中即为ABxAC=(B[0]-A[0])*(C[1]-A[1])-(C[0]-A[0])*(B[1]-A[1])利用叉乘判断M是否在三角形ABC中:若M在ABC中,则MA X MB,MB X MC,MC X MA此三组的向量叉乘的结果都是同号的(或都正,或都负),即方向相同的,则说明点M在三角形每.原创 2021-03-20 10:57:34 · 496 阅读 · 0 评论 -
由206. 反转链表反映的细节问题
题目链接206. 反转链表题目解析这道题并不是很难,这里只阐释再利用递归完成时的一个细节问题。//1.0 versionclass Solution { public ListNode reverseList(ListNode head) { if(head.next==null) return head; ListNode temp=reverseList(head.next); head.next.next=head; h原创 2021-03-15 09:39:35 · 76 阅读 · 0 评论 -
vue去除url中的#
前言在学习vue相关知识后,发现构建url在设立路由时,会自带一个#,我想把url设置成普通网页一样没有url效果即如图所示:产生原因vue-router默认使用hash模式,所以在路由加载的时候,项目中的url会自带#解决方法使用vue-router的另一种模式history//index.jsimport Vue from 'vue'import Router from 'vue-router'import Login from '../views/Login'//安装路原创 2021-03-07 09:29:32 · 1452 阅读 · 0 评论 -
解决 vue init webpack myproject 初始化项目慢的问题
Solution事先准备好npm的淘宝镜像源cnpm利用cnpm install webpack下载后对应的依赖再利用vue init webpack projectname生成项目即可提高配置速度原创 2021-03-06 20:58:47 · 788 阅读 · 0 评论 -
ArrayList and LinkedList知识补充
List是接口,ArrayList是List的实现类。原因至于为什么是写成List list = new ArrayList()而不是ArrayList arrayList = new ArrayList()原因如下:接口有什么好处,这种定义方式就有什么好处,当然你可以用 ArrayList list = new ArrayList(),但是一般不这么用设计模式中有对依赖倒置原则。程序要尽量依赖于抽象,不依赖于具体。从Java语法上,这种方式是使用接口引用指向具体实现。比如,你若希望用.原创 2021-02-26 14:09:16 · 273 阅读 · 0 评论 -
Leetcode 697. 数组的度 以及衍生的静态数组和哈希表的何时使用
题目链接题目理解:初看题意很难理解,但结合实例即可明白所表达意思。我们所要做的即统计出数组中每个元素的频度,得到频度最大的元素,然后找包含这个元素的子数组中长度最短的,很容易知道以这个重复元素为头尾的既是最短的,注意频度最大的元素可能不唯一,所以我们要比较找出对应长度最短的子数组。具体解法:哈希表每一个数映射到一个长度为 33 的数组,数组中的三个元素分别代表这个数出现的次数、这个数在原数组中第一次出现的位置和这个数在原数组中最后一次出现的位置。当我们记录完所有信息后,我们需要遍历该哈希表,原创 2021-02-20 13:28:07 · 132 阅读 · 0 评论 -
LeetCode 995. K 连续位的最小翻转次数
题目链接思路直接模拟是会产生超时的,所以我们使用队列模拟滑动窗口,该滑动窗口的含义是前面 K - 1 个元素中,以哪些位置起始的 子区间进行了翻转。该滑动窗口从左向右滑动,如果当前位置 i 需要翻转,则把该位置存储到队列中。遍历到新位置 j (j < i + K)时,队列中元素的个数代表了 i 被前面 K - 1 个元素翻转的次数。当 i 位置被翻转了偶数次,如果 A[i] 为 0,那么翻转后仍是 0,当前元素需要翻转;当 i 位置被翻转了奇数次,如果 A[i] 为 1,那么翻转后是 0,当原创 2021-02-18 10:46:53 · 92 阅读 · 0 评论 -
滑动窗口模板+实际例题使用
窗口模板具体代码def findSubArray(nums): N = len(nums) # 数组/字符串长度 left, right = 0, 0 # 双指针,表示当前遍历的区间[left, right],闭区间 sums = 0 # 用于统计 子数组/子区间 是否有效,根据题目可能会改成求和/计数 res = 0 # 保存最大的满足题目要求的 子数组/子串 长度 while right < N: # 当右边的指针没有搜索到 数组/字符串 的结尾原创 2021-02-07 14:28:48 · 251 阅读 · 0 评论 -
graphviz安装以及python使用
在安装Graphviz时,花费了大量的精力才安装上,这里记录下自己安装流程,以备不时之需,另一方面也希望能帮助上有需要的人为什么python安装好Graphviz直接使用对于 Python 而言,也有一个 Graphviz 库与该工具对应,使用 Graphviz 库可以使用 Python 的语法生成 dot 语言绘图脚本,并调用 Graphviz 工具生成图片并保存。但是由于 Graphviz 库并不是独立工作的库,它需要连接 Graphviz 工具来联合工作,也就是说当你需要使用 Graphviz.原创 2021-01-05 13:05:23 · 2173 阅读 · 0 评论 -
力扣605. 种花问题
题目链接题目不是难题,但是需要注意一些细节代码如下:思路:即每次可以种花的位置为初始为0,or末尾为0,or临近点为0的位置//即每次可以种花的位置为初始为0,or末尾为0,or临近点为0的位置class Solution { public boolean canPlaceFlowers(int[] flowerbed, int n) { int i=0,count=0; int x= flowerbed.length; while(i<原创 2021-01-01 22:31:42 · 146 阅读 · 0 评论 -
单调栈学习与使用(附有相关具体题目实现)
单调栈实际上仍然是栈,只是利用了一些巧妙的逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递增或单调递减)。什么时候使用注:不必细究是单调调递增栈,还是单调递减栈;实际使用根据情况进行变换即可;注2:JAVA使用ArrayDeque比LinkedList效率更好,速度比后者快只处理一种典型的问题,叫做 Next Greater Element。通常是一维数组,要寻找任一元素右边(左边)第一个比自己大(小)的元素且要求 O(n) 的时间复杂度什么是Next Greater Elem.原创 2020-12-27 12:59:36 · 265 阅读 · 0 评论 -
DFS遍历框架解决岛屿问题
补充在开头这篇题解,是我在做leetcode无意中看到的,原po将此类问题解释的非常清晰,故将其转载并添加上对应题目的解题代码,仅用做个人的学习笔记,不做任何商业用途;引言我们所熟悉的 DFS(深度优先搜索)问题通常是在树或者图结构上进行的。而我们今天要讨论的 DFS 问题,是在一种「网格」结构中进行的。岛屿问题是这类网格 DFS 问题的典型代表。网格结构遍历起来要比二叉树复杂一些,如果没有掌握一定的方法,DFS 代码容易写得冗长繁杂。本文将以岛屿问题为例,展示网格类问题 DFS 通用思路,以及如原创 2020-12-26 10:57:12 · 477 阅读 · 0 评论 -
jieba分词的三种模式
jieba分词的三种模式#测试jieba 分词三种模式的区别seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式print(", ".join(seg_list))#小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, ,, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造print("---------------------------")seg_原创 2020-12-10 17:08:34 · 2747 阅读 · 0 评论 -
python实现把同名文件放入对应的文件夹内
之前在爬取数据时,把文档和图片分别存放了,放在同名的文本txt以及同名文件夹下,现在想实现把同名文本文档放在同名文件夹下的功能(已测试,针对一般的命名的都可正常进行,而对于包含特殊字符可能还有些问题,有待进一步的优化)需要使用的库import osimport shutil工作路径的更改filepath=r'E:\\fashioninfo\\'#你指定的文件存放路径curdir=os.getcwd()print("当前工作目录为{}".format(curdir))os.chdir.原创 2020-12-04 18:33:11 · 3836 阅读 · 0 评论 -
用cmd获取指定文件夹下文件/目录的数目
cmd命令行查看指定文件夹下文件数目:仅统计文件数量dir /b /a-d | find /v /c “&#@”统计文件和目录总数量dir /b | find /v /c “&#@”原创 2020-12-04 16:46:29 · 5229 阅读 · 0 评论 -
红黑树学习(一)
红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。BST二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。在理想的情况下,二叉查找树增删查改的时间复杂度为O(logN)(其中N为节点数),最坏的情况下为O(N)。当它的高度为logN+1时,我们就说二叉查找树是平衡的。BST的查找操作T key = a search keyNode root.原创 2020-11-20 21:12:24 · 209 阅读 · 0 评论 -
Java Collections Framework(Java集合框架)学习(四)
前篇链接ArrayDeque前言Java里有一个叫做Stack的类,却没有叫做Queue的类(它是个接口名字)。当需要使用栈时,Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque;既然Queue只是一个接口,当需要使用队列时也就首选ArrayDeque了(次选是LinkedList)。总体介绍要讲栈和队列,首先要讲Deque接口。Deque的含义是“double ended queue”,即双端队列,它既可以当作栈使用,也可以当作队列使用。下表列出了Deque与Queue相对原创 2020-11-17 15:33:28 · 66 阅读 · 0 评论 -
Java中arraycopy()方法参数解析
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos,int length);参数: src:要复制的数组(源数组) srcPos:复制源数组的起始位置 dest:目标数组 destPos:目标数组的下标位置 length:要复制的长度实例:String[] arr = {"A","B","C","D","E","F"}; Syste原创 2020-11-17 15:26:33 · 964 阅读 · 0 评论 -
JavaScript中const,var,let区别
const定义的变量不可以修改,而且必须初始化。 const b = 2;//正确 // const b;//错误,必须初始化 console.log('函数外const定义b:' + b);//有输出值 // b = 5; // console.log('函数外修改const定义b:' + b);//无法输出 var定义的变量可以修改,如果不初始化会输出undefined,不会报错。var a = 1;// var a;//不会报错console.log('函数外var定义a.原创 2020-11-16 22:43:49 · 56 阅读 · 0 评论 -
Java Collections Framework(Java集合框架)学习(三)
前篇链接LinkedList总体介绍LinkedList同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)。这样看来,LinkedList简直就是个全能冠军。当你需要使用栈或者队列时,可以考虑使用LinkedList,一方面是因为Java官方已经声明不建议使用Stack类,更遗憾的是,Java里根本没有一个叫做Queue的类(它是个接口名字)。关于栈或队列,现在的首选是ArrayDeque,它有着比Linked原创 2020-11-15 17:18:14 · 68 阅读 · 0 评论 -
Java Collections Framework(Java集合框架)学习(二)
前篇链接ArrayList总体介绍ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity),表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量。当向容器中添加元素时,如果容量不足,容器会自动增大底层数组的大小。前面已经提过,Java泛型只是编译器提供的语法糖,所以这里的数组是一个Object数组,以便能够容纳任何类型的对象原创 2020-11-15 16:29:26 · 64 阅读 · 0 评论 -
Java Collections Framework(Java集合框架)学习(一)
学习借鉴Q:为什么不用数组反而用Java集合。数组和Java集合有什么区别?A:Java是一门面向对象的语言,就免不了处理对象,为了方便操作多个对象,那么我们就得把这多个对象存储起来,想要存储多个对象(变量),很容易就能想到一个容器(集合)来装载总的来说:就是Java给我们提供了工具方便我们去操作多个Java对象。Q:如何学习?A:知道Java集合的基本用法,以及从它整体的知识点去了解它是什么;我们学习Java集合实际上就是为了方便操作多个对象,而Java给我们提供一系列的API(方法)原创 2020-11-13 23:04:59 · 292 阅读 · 0 评论 -
python爬虫爬取新浪网站新闻内容
我们以爬取sina时尚模块为例准备工作为进行爬虫爬取工作,我们需要进行相关库的准备以及对网页设置布局的了解相关库的准备import osimport reimport urllibfrom bs4 import BeautifulSoupfrom lxml import etreeimport jsonimport requests网页布局的信息获取我们进入sina时尚板块,选取一则时尚新闻,进入相关网页,我们利用chrome浏览器来进行右键检查,观察新闻的文档内容以及图.原创 2020-11-13 19:42:43 · 5463 阅读 · 10 评论 -
python爬虫爬取到的网址和文档带有多余的反斜杠的处理
在利用python爬取数据时,遇到了以下两个问题,爬取到的url以及文档带有多余的转义字符反斜杠具体情况如下:网址:'http:\\/\\/slide.fashion.sina.com.cn\\/s\\/slide_24_84625_138650.html', 'https:\\/\\/fashion.sina.com.cn\\/s\\/fo\\/2020-11-13\\/1051\\/doc-iiznctke1091604.shtml'文档内容:'\\u674e\\u5b87\\u6625\\u7原创 2020-11-13 11:41:44 · 2535 阅读 · 0 评论 -
python爬虫中需注意user-agent的使用
今天在爬取一些关于时尚的数据的时候,出现了一个难以解决的问题,即我正确的写出了所爬取信息的xpath路径,利用chrome的插件也能得出我想要的数据,但在实际运行时无法得到所需信息。具体情况如下图所示:多次验证后也无法得到所需结果,甚至还用了BeautifulSoup来试图解决,也并没有成功。只得重新一点点检查,并且与之前写的文件进行对比,并进行了多次对照试验(笑),最终确定了问题出现在了user-agent上,之前选取的样式如下:'User-Agent': 'Mozilla/5.0 (Linux原创 2020-11-12 20:51:40 · 1406 阅读 · 0 评论 -
JavaScript个人学习笔记 (六)
HtmlDOM(HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准)1.标签体的设置和获取:innerHTML2.使用html元素对象的属性3.控制元素样式 1.使用元素的style属性来设置 如:(每一个元素都有style属性) //修改样式方式1 div1.style.border="1px solid pink"; div1.style.width="100px"; div1.style.height="100px"原创 2020-11-08 18:26:27 · 98 阅读 · 0 评论 -
JavaScript个人学习笔记 (五)
DOM(将HTML文档表达为树的结构):Document Object Model文档对象模型;将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言进行CRUD(增删改查)的动态操作。原创 2020-11-08 16:00:39 · 206 阅读 · 0 评论 -
Java注解 案例——简单的测试框架
需求:简单的测试框架 判断calculator类的方法是否有问题 当主方法被执行后,会自动执行被检测的所有方法(加了check的注解方法),判断方法是否有异常,记录到文件中,效果如下图所示package cn.cast.annotation.demo;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;原创 2020-11-06 22:54:28 · 180 阅读 · 0 评论 -
Java注解 个人学习笔记
注解:概念:说明程序的。给计算机看的 (注解:用文字描述程序的。给程序员看的)定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类,接口,枚举是在同一层次。他可以声明在 包,类,字段,方法,局部变量,方法参数等的前面,用来对这些元素进行说明,注释。概念描述:JDK1.5之后的新特性;说明程序的;使用注解:@注解名称作用分类:1.编写文档:通过代码里标识的注解生成文档(生成文档doc文档)2.代码分析:通过代码里标识的注解对代原创 2020-11-06 22:05:03 · 126 阅读 · 0 评论 -
二维数组排序参数解释Arrays.sort(intervals, (v1, v2) -> v1[0] - v2[0]);以及Comparetor.compare升序降序补充
Arrays.sort(intervals, (v1, v2) -> v1[0] - v2[0]);假设传来两个值,v1 与 v2,那么他们的先后顺序以 v1[0] 比 v2[0] 的结果为准,即:v1[0]-2[] v1[0] < v2[0] 则 v1 < v2 以升序形式排列,若 = 则 =,若 > 则 >以降序形式举一反三:Arrays.sort(intervals, (v1, v2) -> v1[0] == v2[0] ? v2[1] - v1[1] : v1原创 2020-11-05 17:47:42 · 1810 阅读 · 0 评论 -
JavaScript个人学习笔记 (四)
BOM概念: Brower Object Model 浏览器对象模型 将浏览器的各个组成部分封装成对象分别为navigator浏览器对象,history历史记录对象,location地址栏对象,windows窗口对象,screen显示器屏幕对象,其中窗口对象包含了历史记录对象history,地址栏对象,最重要的是,它还包含了body里面的内容即html文档显示的内容——DOM对象中的Document对象组成: Window:窗口对象 Navigator:浏览器对象 Screen:显示器屏幕对原创 2020-11-05 10:51:45 · 157 阅读 · 0 评论