自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 算法之回溯法(一)

文章目录回溯法(backtracking)回溯法的使用场景题目实例1. 数字的全排列问题分析2. 数字的全排列题目分析3. 括号生成问题分析回溯法(backtracking)对于有些组合问题,初次看感觉可以用dp方法来解决,但是不能保证在多项式时间内解决问题的已知数据结构,类似dp转移方程式不是线性的,需要回溯来解决问题。这时候需要遍历所有潜在的答案,也就是穷举。所以穷举法需要遍历所有可能的答案来找到一个解,如果不满足某个条件就需要返回上一个节点,尝试另一个分支。因此,这种方法叫“回溯法”。通常套用的

2022-04-28 14:56:47 104

原创 面试之python基础(一)

基础1. 实例方法(instance method),类方法(class method)与静态方法(static method)区别实例方法是类实例后的带self参数的普通方法。类方法和静态方法都是通过函数装饰器的方式实现的;类方法需要传入cls参数,静态方法无需传入self参数或者是cls参数(但不等同于不能传入参数) 调用实例方法时,self指向实例对象。类方法是以cls 为参数的方法,使用装饰器classmethod,调用类方法,类方法可以通过类对象或者实例对象调用。如果是通过实例对象调用的,

2022-04-25 12:57:30 609

原创 算法之滑动窗口(一)

滑动窗口 系列滑动窗口是大部分是根据题目移动而去求一些特殊数据。题目1. 滑动窗口最大值leetcode 239第239题:滑动窗口最大值给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑

2022-04-21 17:43:20 106

原创 算法之动态规划(二)

动态规划:一般步骤定义状态,简单的一般是一维数组,复杂的是二维三维数组。定义状态转移方程,这一步是处理子问题的通用解。分析不能满足状态转移方程的特殊情况,类似剪枝的功能得到最终解。例题1. 最小路径和Leetcode 64第64题:最小路径和给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1

2022-04-18 13:43:43 73

原创 算法之动态规划(一)

动态规划(Dynamic programming)动态规划是算法中经常用到的,通过将原问题分解成相对简单的子问题来求解复杂的问题的方法。动态规划与分治方法相似,通过组合子问题的解来求解原问题。与之不同的是,动态规划应用在子问题有重叠的情况下,即不同的子问题有共同的子子问题。解决重复子问题,并将子问题的结果保存在表格内,这就避免重复计算。动态规划一般求解最优化问题,因为有很多可行性解,每个解都有一个值,我们需要寻找最优解的值,这个值称为这个问题的一个最优解,而不是最优解,因为可以有很多解都能达到最优值。

2022-04-14 14:36:55 59

原创 数据结构之字典树(一)

字典树(Trie)定义字典树按功能理解的话可以叫做单词查找树,或者键树,是一种树形结构,是哈希树的变种。典型应用在统计与排序大量的字符串,所以经常被搜索引擎系统用于文本词频的统计。字典树将单词拆分成树的节点,沿着树的路径就形成了该单词,可以用50多个树节点(a-z,A-Z),以及20多层(英文字母最大长度)来表示单词。字典树是一种以空间换时间的做法,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。输入一些字符串(前缀),以此节点为开头,该节点下的节点就是以输入的词为前缀所包含的所有词了

2022-04-11 18:04:00 61

原创 算法之深度优先与广度优先(一)

广度优先搜索(BFS)跟深度优先搜索(DFS)两种搜索方法都是对二或以上维数据进行遍历搜索,按照人的思维可以按照深度优先,还是广度优先的规律来避免重复扫荡某个点。将这种规律赋给计算机去执行就是广度优先搜索跟深度优先搜索。广度优先会采用一维数据结构例如队列来将某一层的数据存储,循环队列内元素来查找下一层数据,即一层层往更深的层级搜索。深度优先会定义一个截止条件例如:找到空,在没有遇到空的时候一直往下查找。查找到空之后就去回溯,直到找到另一条没有被访问的路径,然后依上往下查找。广度优先搜索从根节点出

2022-04-08 13:31:18 150

原创 算法之贪心算法(一)

贪心算法(Greedy)贪心法,在对问题求解的时候总是做出当前看来是最好的选择。由此它没有状态转移,所以大部分情况下看成是一维问题。整体使用次数不多,但是简单易于理解。贪心算法场景能够分成子问题来解决,并且子问题最优解能递推到全局最优解,这种子问题成为最优子结构。贪心算法对子问题作出最优选择后,不能回退,一直往下递推。假如每次选择都进行记录,并且记录多种选择状态,根据以前的结果来进行多种选择状态下的最优解,就是动态规划。贪心的实战1. 买卖股票问题leetcode122给定一个数组 pric

2022-04-07 17:09:54 61

原创 算法之递归(一)

递归(recursion)递归是一个循环类型,不过不是for循环,而是一个函数自己去调用自己,形成一个循环。类似数学公式,例如斐波那契函数,F(n)=F(n - 1)+F(n - 2) (n ≥ 2,n ∈ N*)很容易就可以写出一个函数去表达。def fibonacci(n): if n <= 1: return n return fibonacci(n-1) +fibonacci(n-2)循环类型都需要避免死循环,在斐波那契额函数中,n<=1就是截止条件。如果

2022-04-07 16:37:16 682

原创 数据结构之树(一)

文章目录树(tree)与二叉树(binary tree)存储形式树存储结构为什么出现树的结构?代码表现二叉树(Binary Tree)二叉搜索树(Binary search tree)树的基本题目1. 树的遍历2. 判读是否是二叉搜索树思路:3. 二叉搜索树的最近公共祖先思路:4 . 二叉树最近公共祖先思路:树(tree)与二叉树(binary tree)树的概念可以对比单链表来,而且链表可以当作特殊的树。假如链表的next有两个以上的话,就会形成分叉,即树形结构。二叉树是指next指针只有两个以内。所

2022-04-07 14:37:36 2481

原创 数据结构之栈(一)

栈(stack)队列(Queue)简单的栈跟队列也是一维结构,类似数组(array);所以分配固定的空间内存,需要考虑空间被占满。存储结构参考链表与数组(线性存储和链接存储)栈是一个一端受限的线性表。类似竖着的柱子,只能从顶端即栈顶进栈或出栈,所以也能得出后进先出。队列是能在两端进行操作的线性表。类似一个管道(pipeline),从一端进入另一端推出即先进先出。存储形式如下图代码表现栈(stack)在python语言中通常用list来stack = ["Amar", "A

2022-04-01 12:37:01 1131

原创 数据结构之链表(一)

数组跟链表数组跟链表是都是一维的数据结构,因此经常一起对比学习,数组(arry)是顺序存储结构 按顺序存储到一个连续固定空间的内存上;所以扩容时空间大小需要手动改动。不便于修改。链表(linked list)是用指针连接元素的链式存储结构,不要求连续。查找不方便。数组查询访问速度快为O(1),插入删除效率慢为O(n)。链表则相反,链表查询慢O(n),插入删除为O(1)。存储形式储存[1,2,3,4,5] 这些值,在数组跟链表表现分别为下图。代码表现数组a=[1,2,3,4,5] #

2022-03-29 13:52:58 79

原创 2021工作总结

文章目录工作融资面试也是被面试工程师文化实践感受OKR面对框架开发个人学习工作融资面试也是被面试工程师文化实践感受OKR面对框架开发个人学习干活不由东,累死也无功完结干活不由东,累死也无功完结这一年:得到,失去,释怀,成长,完结2021年还剩不到一周的时间了。是时候回顾今年一年的经历了。我将今年分为上半年跟下半年两部分,上半年:工作是为了生活,下半年:生活是为了工作。工作1月-2月-3月-4月-5月-6月融资工作上未曾有大的变化,只确定公司会拿到融资。碳作为一个风口,其实刚听到此消息的时

2022-01-25 17:50:24 320

原创 django2.2 + 使用celery,rabbitmq-server 异步操作

前期准备新django版本建议直接使用celery。安装celery安装rabbitmq安装celery在终端直接输入pip install celery可直接安装安装rabbitmqsudo yum instal rabbitmq-server使用dockerdocker run -d -p 5462:5462 rabbitmqcelery使用中间件推荐reids跟rabbitmq,官方推荐rabbitmq,但是使用redis比较方便。新建django项目项目目录

2020-06-16 17:01:32 180

原创 vmware 共享文件夹

sudo vmhgfs-fuse -o allow_other .host:/ /mnt/hgfs

2019-08-17 16:39:42 86

原创 scrapy 爬取视频

直接上github爬取非ts类型的视频

2019-06-27 14:45:56 255

翻译 supervisor

安装yum install -y supervisor配置vim /etc/supervisord.conf修改其内容为[include]files = supervisord.d/conf/*.conf若无则创建conf目录,进入conf目录下创建自己的spervisor 配置文件。例excample.conf[program:excample]directory = ...

2019-06-18 10:38:20 95

转载 python之匿名函数

lambda让我们可以创建一个匿名函数,可取代def形式,lambda的用法如下lambda [arg1 [,arg2, ... argN]] : expressionlambda 函数直接调用(lambda x,y:x-y)(3,4)>>>-1(lambda x:2*x )(8)>>>16匿名函数本质时一个函数对象,将其赋值给另一个变量,再由...

2019-06-04 14:31:20 73

翻译 python的元编程之添加装饰器

在函数上添加装饰器你想使用额外的代码包装一个函数,可以定义一个装饰器函数。import timefrom functools import wrapsimport loggingdef timethis_and_log(func): """ Decorator that reports the execution time""" @wraps(func)...

2019-06-03 16:27:47 88

原创 drf-jwt-wechat django jwt 小程序登录后台

drf-jwt-wechat 小程序,drf,jwt,一个对三者进行封装登录的包小程序登录逻辑jwtdrf源代码示例drf-jwt-wechatUsage小程序,drf,jwt,一个对三者进行封装登录的包项目进行时,创建的一个包。小程序登录逻辑小程序登录需要前端调用wechat-login,产生code,传给后台,后台再用code,appip,appsecret 调用微信接口获取用户数据,...

2019-05-31 16:02:24 1114

转载 python 全局锁

python的全局锁问题问题你已经听说过全局解释器锁GIL,担心它会影响到多线程程序的执行性能。解决方案尽管Python完全支持多线程编程, 但是解释器的C语言实现部分在完全并行执行时并不是线程安全的。 实际上,解释器被一个全局解释器锁保护着,它确保任何时候都只有一个Python线程执行。 GIL最大的问题就是Python的多线程程序并不能利用多核CPU的优势 (比如一个使用了多个线程的计...

2018-12-10 16:45:50 143

转载 scrapy日志

Scrapy 生成的调试信息非常有用,但是通常太罗嗦。你可以在 Scrapy 项目中的 setting.py 文件中设置日志显示层级:LOG_LEVEL = ‘ERROR’Scrapy 日志有五种层级,按照范围递增顺序排列如下:• CRITICAL• ERROR• WARNING• DEBUG• INFO如果日志层级设置为 ERROR ,那么只有 CRITICAL 和 ERROR...

2018-12-10 16:41:23 88

转载 Xpath用法

什么是xpath?Xpath (XML Path Language)是一门在XML文档中查选信心的语言,可用在XML文档中对元素和属性进行遍历。xpath W3School官方文档XPath 开发工具开源的XPath表达式编辑工具:XMLQuire(XML格式文件可用)Chrome插件 XPath HelperFirefox插件 XPath Checker选取节点Xpath 使用...

2018-12-10 16:41:02 129

转载 爬虫介绍

通用爬虫和聚焦爬虫根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种.通用爬虫通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。通用搜索引擎(Search Engine)工作原理通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它...

2018-12-10 16:40:45 108

转载 为什么要用python做爬虫

可以做爬虫的语言很多, 如php, java, c/c++, python等等…php 虽然是世界上最好的语言,但是他天生不是干这个的,而且对多线程, 异步高并发的支持并不是很好,爬虫是工具性程序,对速度和效率要求比较高java 的爬虫生态圈也很完善,是python爬虫最大的对手。但java重构成本比较高,任何修改都会导致代码大量变动,爬虫经常需要修改部分代码,而python只需要修改...

2018-12-10 16:40:27 406

转载 手机抓包爬虫

通过Fiddler进行手机抓包通过Fiddler抓包工具,可以抓取手机的网络通信,但前提是手机跟电脑处于同一局域网内(wifi或热点),然后进行以下设置:用Fiddler对Android应用进行抓包打开Fiddler设置在Connections里设置允许连接到远程计算机,然后确认后重新启动Fiddler在命令提示符下输入ipconfig查看本机ip打开Android设备的&quot;设置&quot;...

2018-12-10 16:40:13 138

转载 scarpy特性

一目了然Scarpy是用于抓取网站并提取结构化数据的应用程序框架,可用于广泛的有用应用程序,如数据挖掘,信息处理或历史存档尽管 Scarpy最初设计是用于网页抓取,但它可以用于API如(Amazon Associates Web Service)或通用网页抓取工具提取数据很好知道的事情Scarpy是用纯python编写的,并且取决于几个关键的python包:* lxml ,一个高效的XM...

2018-12-10 16:39:47 93

转载 scrapy Settings 配置

SettingsScrapy设置(settings)提供了定制Scrapy组件的方法。可以控制包括核心(core),插件(extension),pipeline及spider组件。比如 设置Json Pipeliine、LOG_LEVEL等。参考文档内置设置参考手册* BOT_NAME * 默认: 'scrapybot' * 当您使用 startproject ...

2018-12-10 16:38:57 79

转载 scarpy 反爬虫相关机制

反反爬虫相关机制Some websites implement certain measures to prevent bots from crawling them, with varying degrees of sophistication. Getting around those measures can be difficult and tricky, and may sometim...

2018-12-10 16:38:43 144

转载 scarpy 中间件

下载中间件是处于引擎(crawler.engine)和下载器(crawler.engine.download())之间的一层组件,可以有多个下载中间件被加载运行。1. 当引擎传递请求给下载器的过程中,下载中间件可以对请求进行处理 (例如增加http header信息,增加proxy信息等);2. 在下载器完成http请求,传递响应给引擎的过程中, 下载中间件可以对响应进行处理(例如进行gzi...

2018-12-10 16:38:27 96

转载 scarpy-redis介绍

Scarpy-redis 分布式策略:假设有四台电脑:windows10、mac os x、ubuntu 16.04、centos7,任意一台电脑作为master端或slaver端,比如:* master端使用centos7,作为一个核心服务器,搭建一个redis数据库,不负责爬取,只负责url指纹判重、request的分布,以及数据的存储* slaver端爬虫程序执行端,使用mac 、...

2018-12-10 16:38:13 74

转载 scrapy-redis 理解

官方站点scrapy-redis的官方文档写的比较简洁,没有提及其运行原理,所以如果想全面的理解分布式爬虫的运行原理,还是得看scrapy-redis的源代码才行。scrapy-redis工程的主体还是是redis和scrapy两个库,工程本身实现的东西不是很多,这个工程就像胶水一样,把这两个插件粘结了起来。下面我们来看看,scrapy-redis的每一个源代码文件都实现了什么功能,最后如何实...

2018-12-10 16:38:00 141

转载 Item Loaders 介绍

Item LoadersItem Loader提供了一个方便的机制, 用于填充爬取的Items,即使可以使用自己的类似于字典的API来填充项目,Item Loaders可以通过自动化一些常见任务(如解析原始提取的数据)进行分配,从而为爬取过程提供更方便的API。换句话说,Items提供了数据的容器,而Item Loaders提供了填充该容器的机制项目装载器旨在提供一种灵活,高效和简单的机制,...

2018-12-10 16:37:34 113

原创 scrapy 淘宝 爬虫

技术框架采用scrapy 以及 scrapy-redis,以redis为调度,分布式爬取淘宝。防止被禁的技巧本例中采用每次请求换user-agent,以及禁用cooikes,30秒换一个ip(非常规ip代理)此技术自行搜索,settings.py# Disable cookies (enabled by default)COOKIES_ENABLED = FalseDOWNLOADE...

2018-11-26 11:53:38 289 2

翻译 scrapy 简单 文档

scrapy介绍Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。Scrapy 使用了 Twisted’twɪstɪd异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各...

2018-11-26 10:46:10 150

原创 django rest framework api构建

Introductionswhat is django rest frameworkAn example for basedata1. settings2. model3. serializers4. use viewset prefer view5. routerIntroductionswhat is django rest framework...

2018-08-16 12:00:35 152

翻译 djang +vue 搭建一体化前后端分离项目

一、项目实现的功能项目实现数据的收录以及统计,pdf的生成。以及新闻的展示。二、项目搭建1. 所需环境项目采用语言为python3.6,Django==2.0.5,djangorestframework==3.8.2。所用第三方包如下cairocffi==0.8.1CairoSVG==2.1.3certifi==2018.4.16cffi==1.11.5chardet=...

2018-08-15 16:34:56 216

原创 django 中post_save的用法小尝试

post_savepost_save 在django中是属于一种模型之间的信号机制,对某个模型进行操作的时候通知其他模型 代码 如下:class Profile(models.Model) user = models.OneToOneField(User, on_delete=models.CASCADE) name = models.CharField(verbose_name

2017-12-27 18:29:50 1170

转载 kali 更新修改源 安装中文输入法

1、首先确定自己kali的版本:lsb_release -akali-rolling版本:(中科大可以,我喜欢清华所以选择了两个)#清华大学deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-freedeb-src https://mirrors.tuna.tsinghua.edu.cn/kali

2017-12-16 22:48:00 327

原创 django 实现登录登出的功能

django登录,django是一个python下的大型框架,之所以大,是因为很多东西都可以延用。试了一下继承django自带的user类实现登录。

2017-11-16 18:02:52 628

空空如也

空空如也

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

TA关注的人

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