学习笔记
RunHio
这个作者很懒,什么都没留下…
展开
-
HTTP协议
文章目录HTTP协议HTTP协议的特点URL和URI的区别HTTP协议与URL的关系HTTP之请求HTTP之响应在浏览器地址栏键入URL,按下回车之后会经历以下流程HTTP协议HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。浏览器作为HTTP客户端通过URL向HTT原创 2021-05-02 23:59:33 · 144 阅读 · 0 评论 -
关于post的请求体类型
文章目录Http请求一、body的类型二、使用步骤1.引入库2.读入数据总结Http请求HTTP请求中 header query 和 body的区别header显而易见是请求头query是指请求的参数,一般是指URL中?后面的参数如http://10.6.6.6:8080/api/v1/namespaces?pretty=true中 pretty=true就是querybody是指请求体中的数据前端发送请求最常用的是get请求还有post请求get请求只能传query参数,query参数原创 2021-04-06 22:30:06 · 11822 阅读 · 1 评论 -
null和undefined的区别
null和undefined的区别undefined代表的是定义了,但未赋值如var a,然后输出,得到的就是undefined。null代表的是定义并赋值了,但是赋值的是null如var a=null,输出的就是null什么情况下赋值为null1.初始赋值的时候可以赋值为null,表明将要赋值为一个对象2.结束后,让对象再次赋值为null,让对象成为垃圾对象,可以被垃圾回收器回收...原创 2021-03-28 12:15:09 · 66 阅读 · 0 评论 -
js的数据类型
js的数据类型分类1.基本数据(值)类型* ·string* ·number* ·boolean* ·null* ·undefi2.对象数据(引用)类型* ·Object* ·Function* ·Array判断类型的方法typeof 用来判断基本数据类型,返回的是数据类型的字符串表达式,可以用来判断基本数据类型的undefined,number,string,boolean,也可以判断引用数据类型的function,但是无法判断是null和array,因为返回的都是objecti原创 2021-03-28 11:45:52 · 93 阅读 · 1 评论 -
选择器权重
权重和权值列表注意一点:继承的样式优先级为0看一下例题:由于h1是继承id为post的属性,所以权重为0第二个的权重为1+10=11第三个的权重为10+10=20第四个的权重为1+1=2所以样式应该是第三个生效,字体颜色为红色...原创 2021-03-24 19:29:32 · 83 阅读 · 0 评论 -
h5的新表单控件
电子邮件<input type="email">表单提交时,会验证数据是否符号email的规范(有@,并且@后面有内容)搜索类型<input type="search">提供了快速清除的功能url类型<input type="url">提交时,验证数据是否符合url的规范(http://****)电话号码类型<input type="tel">数字类型<input type="number">属性:value原创 2021-03-24 16:03:25 · 196 阅读 · 1 评论 -
call apply bind的异同和用处
改变函数this指向的方法callapplybindcall方法call方法可以进行函数的调用,同时也可以改变this的指向,传递参数的方法为直接传递。示例代码:函数调用function test(){ console.log("测试代码"); } test.call()改变this指向 var o={ name:"123" } function fn(){原创 2021-03-23 20:00:16 · 80 阅读 · 0 评论 -
面向对象和面向过程
面向过程面向过程编程(POP),就是分析出解决问题所需要的步骤,然后用函数将这些步骤一步一步实现,使用时再依次进行调用。例如:面向过程,就是按照分析好的步骤,按照步骤去依次解决问题面向对象面向对象(OOP),就是把事务分解成一个一个对象,然后由对象之间进行分工和合作。以上面的将大象装进冰箱为例子。先找出对象,并写出这些对象的功能。大象对象·进去冰箱对象·打开·关闭使用大象和冰箱的功能,将大象装进冰箱面向对象就是以对象功能来划分问题,而不是步骤面向对象的优势与劣原创 2021-03-23 15:14:42 · 93 阅读 · 0 评论 -
js的构造函数
创建对象的方法对象字面量new Object()自定义构造函数构造函数构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与 new 一起使用。我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。在 JS 中,使用构造函数时要注意以下两点:构造函数用于创建某一类对象,其首字母要大写构造函数要和 new 一起使用才有意义new的执行new 在执行时会做四件事情:在内存中创建一个新的空对象。让 this 指向这个新的对象。执行构造函数里面原创 2021-03-23 09:43:19 · 483 阅读 · 0 评论 -
js的声明提前
什么是声明提前?它是指当我们声明一个变量或是一个函数的时候,我们可以在起前面访问带该变量或函数;即:声明统一提前,赋值原地不变变量声明提前先来看一下代码:function b(){ console.log(a); //undefined var a = '哈哈'; //声明变量a并且给a赋值哈哈 console.log(a) //哈哈}b()等同于function b(){ var a; console.log(a); //undefined a = '原创 2021-03-17 18:01:06 · 198 阅读 · 0 评论 -
关于js类型判断的几种方法
关于js类型判断的几种方法typeofinstanceofconstructorObject.prototype.toString.call()typeof示例代码如下 console.log(typeof null); console.log(typeof '10');输出结果 object string其实很容易能够看出这种方法的弊端,null 的结果也是 object,且数组的结果也是 object,那么说明这种方法无法分辨纯粹的objectinst原创 2021-03-16 23:27:18 · 157 阅读 · 0 评论 -
关于js的原型链
关于prototype和constructor首先先确定一个概念:任何对象必有__ proto __属性.(包括简单类型对象,var i=1;)特例:(Object.prototype属性对象)和(Object对象.proto属性对象)没有proto属性.任何函数必有prototype原型对象接下来我们看下面这串代码 function Person(){} var person=new Person(); var Father=function(){}我们定义了两个函数,Pers原创 2021-03-16 19:35:45 · 63 阅读 · 0 评论 -
关于CSS隐藏界面元素的几种方法
关于CSS隐藏界面元素的几种方法opacityvisibilitydisplayopacity这种方法是通过将页面上的元素设置为透明来进行一个隐藏,隐藏之后的元素仍然占据着原来的位置并且能够进行交互,示例代码如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content=原创 2021-03-16 14:40:44 · 249 阅读 · 0 评论 -
决策树
认识决策树决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法怎么理解这句话?通过一个对话例子决策树分类原理详解为了更好理解决策树具体怎么分类的,我们通过一个问题例子?如何对这些客户进行分类预测?你是如何去划分?有可能你的划分是这样的那么我们怎么知道这些特征哪个更好放在最上面,那么决策树的真实划分是这样的信息和消除不确定性是相联系的当我们得到的额外信息越多的话,那么我们猜测的代价越小(猜测的不确定性减小)原创 2021-02-19 15:06:45 · 92 阅读 · 0 评论 -
朴素贝叶斯
朴素贝叶斯sklearn.naive_bayes.MultinomialNB(alpha = 1.0)朴素贝叶斯分类alpha:拉普拉斯平滑系数案例:20类新闻分类分割数据集tfidf进行的特征抽取朴素贝叶斯预测#朴素贝叶斯对sklearn中的新闻集进行分类from sklearn.datasets import fetch_20newsgroupsfrom sklearn.model_selection import train_test_splitfrom sklearn.fea原创 2021-02-19 14:56:05 · 78 阅读 · 0 评论 -
K-近邻算法
定义如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别距离公式两个样本的距离可以通过如下公式计算,又叫欧式距离电影类型分析假设我们有现在几部电影其中? 号电影不知道类别,如何去预测?我们可以利用K近邻算法的思想鸢尾花类型举例from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklea原创 2021-02-19 14:45:32 · 176 阅读 · 0 评论 -
机器学习之特征工程——特征预处理
什么是特征预处理通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程通俗来讲:统一标准,不让其中一个特征值在数值上占较大影响力特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征我们需要用到一些方法进行无量纲化,使不同规格的数据转换到同一规格归一化通过对原始数据进行变换把数据映射到(默认为[0,1])之间分析1、实例化MinMaxScalar2、通过fit_transform转换import原创 2021-02-19 14:32:46 · 157 阅读 · 0 评论 -
机器学习之特征工程——特征提取
什么是特征工程特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。意义:会直接影响机器学习的效果特征工程包含内容特征抽取特征预处理特征降维特征提取将任意数据(如文本或图像)转换为可用于机器学习的数字特征字典特征提取我们对以下数据进行特征提取[{'city': '北京','temperature':100}{'city': '上海','temperature':60}{'city': '深圳','temperature':30}]from原创 2021-02-19 14:23:13 · 443 阅读 · 0 评论 -
机器学习之数据集
sklearn数据集sklearn:Python语言的机器学习工具Scikit-learn包括许多知名的机器学习算法的实现Scikit-learn文档完善,容易上手,丰富的APIsklearn数据集使用:sklearn.datasets 加载获取流行数据集datasets.load_()获取小规模数据集,数据包含在datasets里datasets.fetch_(data_home=None) 获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录原创 2021-02-19 14:10:29 · 3576 阅读 · 0 评论 -
机器学习概述
什么是机器学习机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测数据集的构成特征值+目标值机器学习的算法分类例子:特征值:猫/狗的图片;目标值:猫/狗-类别——分类问题特征值:房屋的各个属性信息;目标值:房屋价格-连续型数据——回归问题特征值:人物的各个属性信息;目标值:无——无监督学习总结:机器学习算法分类监督学习(supervised learning)(预测)定义:输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限原创 2021-02-19 13:49:22 · 443 阅读 · 0 评论 -
pyhton词云
pyhton词云首先安装相关依赖pip install wordcloud简单的示例代码# 导入词云制作第三方库wordcloudimport wordcloud# 创建词云对象,赋值给w,现在w就表示了一个词云对象w = wordcloud.WordCloud()# 调用词云对象的generate方法,将文本传入w.generate('and that government of the people, by the people, for the people, shall not原创 2021-02-16 17:02:41 · 119 阅读 · 0 评论 -
scrapy爬取三国演义并存入数据库
scrapy爬取三国演义之前的博客中有一篇是用request模块进行三国演义的爬取,这次我们使用scrapy框架来爬取,同时涉及到scrapy的一个新知识点import scrapyfrom ..items import SanguoItemclass SpidersanguoSpider(scrapy.Spider): name = 'spidersanguo' # allowed_domains = ['www.xxxx.com'] start_urls = ['htt原创 2021-02-16 16:58:34 · 576 阅读 · 0 评论 -
scrapy持久化存储
scrapy基于管道的持久化存储编码流程:1.数据解析2.在item类中定义相关的属性3.将解析的数据封装存储到item类型的对象4.将item类型的对象提交给管道进行持久化存储的操作5.在管道类的process_item中要将其接受到的item对象中存储的数据进行持久化存储操作6.在配置文件中开启管道示例代码:在item类中定义相关属性(items.py):# Define here the models for your scraped items## See documen原创 2021-02-15 23:47:39 · 150 阅读 · 0 评论 -
scrapy框架
什么是scrapy框架 爬虫中封装好的一个框架。 功能: 1.高性能的持久化存储 2.异步的数据下载 3.高性能的数据解析 4.分布式环境安装环境安装:pip install scrapy注:pip版本要在21版本以上的才可以使用以上方法进行安装,可以使用pip -V查看自己的pip版本如何使用 创建工程: scrapy startproject 项目名创建完成后的目录如下: 创建成功后需要在spiders目录下创建一个爬虫文件 scrapy genspider 文件名原创 2021-02-15 23:30:58 · 110 阅读 · 0 评论 -
selenium处理iframe与模拟滑动
selenium处理iframe先看一下这个例子我们要处理右边的待滑动滑块,首先要先定位到滑块身上。通过查看源码发现,右边部分是嵌套在一个iframe中,所以我们无法直接定位到滑块身上。这个时候我们需要用switch_to.frame(id),来定位到右边部分。代码如下:from selenium import webdriverfrom lxml import etreefrom selenium.webdriver import ActionChainsif __name__ == '原创 2021-02-15 15:57:53 · 590 阅读 · 0 评论 -
selenium模块
selenium模块和爬虫之间具有怎样的关联?便捷的获取网站中动态加载的数据便捷实现模拟登录selenium使用流程1.环境安装:pip install selenium2.下载一个浏览器的驱动程序(谷歌浏览器)下载路径:http://chromedriver.storage.googleapis.com/index.html驱动程序和浏览器的映射关系:http://blog.csdn.net/huilan_same/article/details/518966723.实例化一个浏览原创 2021-02-15 00:24:42 · 144 阅读 · 0 评论 -
模拟登录后携带cookie继续发送请求
session会话对象作用:1.可以进行请求的发送2.如果请求过程中产生了cookie,则该cookie会被自动存储/携带在该session对象中使用:创建一个session对象:session=requests.Session()使用session对象进行模拟登录请求的发送,登录成功后cookie就会被存储到session中再次进行请求发送,第二次请求会携带cookie代码示例# 模拟登录红薯网import requestsfrom lxml import etreefrom原创 2021-02-14 16:24:43 · 600 阅读 · 0 评论 -
爬虫之识别验证码
验证码识别验证码是网站反爬的一种策略,这里我们使用超级鹰提供的api进行验证码识别超级鹰链接这里需要用户自己进行注册与充值,然后下载示例代码,将Chaojiying_Client这个类拷贝到工作区间进行引入,接下来的代码示例Chaojiying_Client类#!/usr/bin/env python# coding:utf-8import requestsfrom hashlib import md5class Chaojiying_Client(object): def原创 2021-02-14 11:32:36 · 211 阅读 · 0 评论 -
爬虫之xpath解析
xpath解析xpath解析是最常用且最便捷高效的一种解析方式,比较通用xpath解析原理实例化一个etree对象,且需要将被解析的页面源码数据加载到该对象中。调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获环境安装pip install lxml如何实例化一个etree对象:from lxml import etree将本地的html文档中的源码数据加载到etree对象中:etree.parse(filePath)可以将互联网上获取到的源码数据加载到原创 2021-02-13 22:23:52 · 292 阅读 · 2 评论 -
爬取三国演义
import requestsfrom bs4 import BeautifulSoupif __name__ == '__main__': # 占位符代替页码 url="https://so.gushiwen.org/search.aspx?type=guwen&page=%d&value=三国演义" # 每一页的url url_list=[] headers = { "User-Agent": "Mozilla/5.0(Wind原创 2021-02-12 21:48:51 · 511 阅读 · 1 评论 -
爬虫之bs4解析
bs4解析bs4解析是python中独有的数据解析方式bs4数据解析的原理1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中2.通过调用BeautifulSoup对象中相关的属性或方法进行标签定位和数据提取环境安装:1.pip install bs42.pip install lxml这里顺带将pip如何设置成国内源的方法链接附上链接在这如何实例化BeautifulSoup对象:from bs4 import BeautifulSoup将爬取到原创 2021-02-12 20:30:14 · 978 阅读 · 1 评论 -
爬虫之正则匹配
图片爬取数据解析原理概述解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储所以在进行数据解析时,应该分为两步1.进行指定标签的定位2.对标签或标签对应的属性中存储的数据进行提取案例:这里爬取的是糗事百科中的图片部分,我们可以先检查一下页面的html。可以看到,所有图片都以这样的标签形式存储在页面中,所以我们要想爬取页面上的图片,首先应该先获取页面的html文件,然后以正则表达式,让图片的标签与整个html进行匹配,从而获取到所有图片的src。代码如下:import req原创 2021-02-12 16:46:44 · 572 阅读 · 3 评论 -
Python爬虫的UA伪装
Python爬虫UA伪装在进行爬取搜狗的网页采集器时,一开始采取的是常规的爬取方法,代码如下if __name__=="__main__": url="https://www.sogou.com/web" queryword=input("输出关键字") param={ "query":queryword } res=requests.get(url=url,params=param) res.encoding="utf-8" pa原创 2021-02-11 22:46:57 · 1123 阅读 · 2 评论 -
Python爬虫初体验
Python爬虫python基础爬虫的步骤如下引入requests模块设置指定爬取的url发起请求获取响应的数据进行持久化存储首次爬虫爬取的是百度的首页,将爬取下来的html文件存储到本地,同时需要解决爬取后的乱码问题,代码如下:import requestsif __name__=="__main__": # 指定url url="https://www.baidu.com/" # 发起请求 res=requests.get(url=url)原创 2021-02-11 17:32:06 · 303 阅读 · 3 评论 -
SpringSecurity
一、SpringSecurity简介安全框架就是解决系统安全的框架。如果没有安全框架,我们需要手动的处理每个资源的访问控制,这是非常麻烦的。使用了安全框架,我们可以通过配置的方式实现对资源的访问限制。Spring Security是一个高度自定义的安全框架。利用Spring IOC、DI和AOP的功能,为系统提供了声明式安全访问控制功能,减少了为系统安全而编写大量重复代码的工作。使用Spring Security的原因很多,但大部分都是发现了Java EE的Servlet规范或EJB规范中的安全功能缺乏原创 2021-02-02 18:03:10 · 68 阅读 · 0 评论 -
关于Promise的简介和基本使用
什么是Promise简单来说,Promise是异步编程的一种解决方案。为什么会有promise?先清楚一下什么是异步与同步:同步:假设你去了一家饭店,找个位置,叫来服务员,这个时候服务员对你说,对不起我是“同步”服务员,我要服务完这张桌子才能招呼你。那桌客人明明已经吃上了,你只是想要个菜单,这么小的动作,服务员却要你等到别人的一个大动作完成之后,才能再来招呼你,这个便是同步的问题:也就是“顺序交付的工作1234,必须按照1234的顺序完成”。异步:则是将耗时很长的A交付的工作交给系统之后原创 2021-01-25 10:43:27 · 352 阅读 · 0 评论 -
SpringMVC(一)什么是SpringMVC
1、回顾MVC1.1、什么是MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。Model(模型)数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和原创 2021-01-20 20:53:06 · 264 阅读 · 0 评论 -
Spring(八)之事务控制
Spring的事务控制Spring中事务控制的 API 介绍1.PlatformTransactionManager此接口是 spring 的事务管理器,它里面提供了我们常用的操作事务的方法,如下图:我们在开发中都是使用它的实现类,如下图:Spring基于XML的声明式事务控制-配置步骤Step1:导入事务相关名称空间<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://原创 2021-01-20 00:51:35 · 63 阅读 · 0 评论 -
Spring(七)之AOP的环绕通知
环绕通知问题: 当我们配置了环绕通知之后,切入点方法没有执行,而通知方法执行了。分析: 通过对比动态代理中的环绕通知代码,发现动态代理的环绕通知有明确的切入点方法调用,而我们的代码中没有。解决: Spring框架为我们提供了一个接口:ProceedingJoinPoint。该接口有一个方法proceed(),此方法就相当于明确调用切入点方法。 该接口可以作为环绕通知的方法参数,在程序执行时,spring框架会为我们提供该接口的实现类供我们使用。Spring中的环绕通知: 它原创 2021-01-19 17:10:21 · 1056 阅读 · 1 评论 -
Spring(六)之AOP
AOP:全称是 Aspect Oriented Programming 即:面向切面编程。简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。如何使用Spring中的AOP来实现动态代理,简化代码Step1:文件导入坐标 <dependency> <groupId>org.springframework</groupId> <art原创 2021-01-19 16:50:46 · 68 阅读 · 0 评论