python
文章平均质量分 93
daiyu__zz
立志要成为斜杠青年!
展开
-
falsk实现结巴分词自定义词典定时更新及加载
问题使用flask配合结巴库做了一个分词接口,做定时任务每天从数据库拉取自定义词汇作为其自定义词典,使用uwsgi部署.问题点是在uwsgi运行时,即使从数据库拉取了数据,词典也不会加载到内存中,也就是新的词汇不生效解决办法办法一在flask再添加一个定时任务,当词典拉取后就调用词典加载程序,将词典加载到内存中 --不可行原因:因为在uwsgi运行时,之前的词典已经加载到内存中,在次加载词典不生效方法二uwsgi中有一个配置py-autoreload=1,当有py文件改变时会自动重启uw原创 2020-09-04 17:07:58 · 593 阅读 · 0 评论 -
贝叶斯学习(一)
前言最近发现一本关于贝叶斯的书籍,很是适合作为贝叶斯的入门书籍来看,在这里推荐给大家 <<统计学管我什么事:生活中的极简统计学>>这本书以浅显的小例子来解释贝叶斯推理,只需要会做四则运算,便可以掌握贝叶斯统计学.以下作为读书记录贝叶斯统计的优势在于,“在数据少的情况下也可以进行推测,数据越多,推测结果越准确”,以及"对所获的信息可以作数瞬时反应,自动升级推测"的学习功...原创 2020-03-26 16:58:41 · 796 阅读 · 0 评论 -
Django综合篇之会话session
声明:本文转载自http://www.liujiangblog.com/course/django/168,仅用于参考学习使用因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的、独立的。通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户。对于静态网站,这可能不是个问题,而对于动态网站,尤其是京东、天猫、银行等购物或...转载 2018-12-25 17:10:56 · 353 阅读 · 0 评论 -
Django综合篇之网站地图sitemap
声明:本文转载自http://www.liujiangblog.com/course/django/169,仅供参考学习使用。网站地图是根据网站的结构、框架、内容,生成的导航网页,是一个网站所有链接的容器。很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指路,增加网站内容页面的收录概率。网站地图一般存放在域名根目录下并命名为s...转载 2018-12-25 17:22:37 · 993 阅读 · 0 评论 -
selenium循环点击无法定位元素问题
【问题】:selenium循环点击进入下级页面时,第一次点击返回后不能继续循环,无法定位元素。【原因】:selenium模拟点击进入下一页操作后退出,原页面刷新后元素的属性没有变,但是之前获得的element却变了,之前所有的额定位元素element都过期了。【解决】:1.页面刷新后,在循环体中重新定位一次,覆盖掉之前的定位。2.第一次获取全部元素后,通过len()函数获取循环总个数;3...原创 2019-01-09 19:35:55 · 2742 阅读 · 0 评论 -
selenium切换窗口的几种方法小结
第一种方法使用场景打开多个窗口,需要定位到新打开的窗口;使用方法:# 获取打开的多个窗口句柄windows = driver.window_handles# 切换到当前最新打开的窗口driver.switch_to.window(windows[-1])举例说明# _._ coding:utf-8 _._from selenium import webdriverimpor...转载 2019-01-09 20:01:35 · 29290 阅读 · 3 评论 -
向列表中循环添加字典时数据覆盖为题的分析与解决
问题:预期打印出来的list为:[{‘num’: 0}, {‘num’: 1}, {‘num’: 2}],结果为[{‘num’: 2}, {‘num’: 2}, {‘num’: 2}]list=[]dictionary={"num":""}for i in range(3): dictionary["num"]=i list.append(d)print(list) ...原创 2019-01-09 20:34:53 · 1597 阅读 · 0 评论 -
Python3 CookBook| 数据结构和算法(一)
【注】文章转载自’https://zhuanlan.zhihu.com/p/31578224’,仅供学习使用以下测试代码全部基于 Python3。Python 提供了大量的内置数据结构,包括列表,集合以及字典。在工作和编码中,可以说天天和它们打交道,经常碰到查询,排序和过滤等等这些问题,虽然每次解决这些问题并不困难,但总感觉代码写的很麻烦,不够优雅。最近通过阅读《Python3 CookBo...转载 2019-02-12 19:10:10 · 193 阅读 · 0 评论 -
python将mysql数据导出到csv文本
以下代码是将mysql数据库数据导入到csv文件import pymysqlimport csvdef from_mysql_get_all_info(): conn = pymysql.connect( host='xxxxxx', port=3306, user='xxxx', db=xx', pa...原创 2019-04-11 14:48:55 · 5346 阅读 · 0 评论 -
Python3 CookBook| 数据结构和算法(二)
1、查找最大或最小的N个元素怎样从一个集合中获取最大或最小的N个元素列表?heapq模块有两个函数:nlargest()和nsmallest()可以完美解决这个问题。import heapqnums = [1,8,2,23,7,4,56,768,34,77,6,99]print(heapq.nlargest(3,nums)) # prints [768, 99, 77]print(he...原创 2019-04-16 11:32:52 · 232 阅读 · 0 评论 -
Python3 CookBook|函数(一)
1、可接受任意数量参数的函数【问题】你想构造一个可接受任意数量参数的函数【就决方案】为了能使一个函数接受任意数量的位置参数,可以使用一个 * 参数def avg(first,*rest) return (first + sum(rest)) / (1 + len(rest))avg(1,2)avg(1,2,3,4)为了接受任意数量的关键字参数,使用一个以 ** 开头的参数。...原创 2019-04-28 22:55:34 · 188 阅读 · 0 评论 -
python训练Word2Vec词向量
一、模型训练1、安装gensimpip install gensimgensim中封装了包括word2vec、doc2vec等模型,word2vec采用了CBOW(Continuous Bag-Of-Words,连续词袋模型)和Skip-Gram两种模型。2、模型训练from gensim.models import Word2Vecmodel = Word2Vec(sentence...转载 2019-05-07 11:15:40 · 2860 阅读 · 0 评论 -
Python3 CookBook|函数(二)
1、减少可调用对象的参数个数转载 2019-06-13 11:34:12 · 194 阅读 · 0 评论 -
Python3 CookBook|类与对象(一)
1、改变对象的字符显示【问题】你想改变对象实例的打印或显示输出,让它们根据可读性【解决方案】要改变一个实例的字符串表示,可以重新定义它的__str__()和__repr__()方法。例如:class Pair: def __init__(self,x,y): self.x = x self.y = y def __repr__(self): return 'Pair(...原创 2019-06-13 15:06:04 · 126 阅读 · 0 评论 -
Python3 CookBook | 元编程(一)
1、在函数上添加包装器【问题】你想在函数上添加一个包装器,增加额外的操作处理(比如日志、计时等)【解决方法】如果你想使用额外的代码包装一个函数,可以定义一个装饰器,如下:def timethis(func): @wraps(func) def wrapper(*args,**kwargs): start = time.time() resu...原创 2019-06-13 19:22:40 · 272 阅读 · 0 评论 -
爬取websocket实时数据
一、什么是websocketWebsocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务端之间的数据交换变得更加简单,允许服务器主动向客户端推送数据。在Websocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。Websocekt优点:较少的控制开销:只需要进行一次握手,携带一次请求头信息即可,后续只传输数据...转载 2019-08-16 17:11:08 · 1963 阅读 · 2 评论 -
关于部分版本django用户验证时authenticate()函数一直返回None的解决方法
一、背景最近在跟着网上教程学习django的天天生鲜项目,在用户登陆验证部分使用的是django内置的authenticate()函数,发现authenticate()函数一直返回None,我的django版本是1.11。感觉的这个函数的问题,最后在网上找到了答案,这里记录一下。二、代码class LoginView(View): '''登录视图类''' def get(s...原创 2019-10-05 11:28:33 · 1574 阅读 · 2 评论 -
Django综合篇之核心配置项
声明:本文转载自http://www.liujiangblog.com/course/django/164,仅供参考学习使用。Django的默认配置文件中,包含上百条配置项目,其中很多是我们‘一辈子’都不碰到或者不需要单独配置的,这些项目在需要的时候再去查手册。强调:配置的默认值不是在settings.py文件中!不要以为settings.py中的配置值就是默认值,参考前文。settings...转载 2018-12-25 16:45:58 · 562 阅读 · 0 评论 -
Django综合篇之配置Django
声明:本文转载自http://www.liujiangblog.com/course/django/163,仅供参考学习使用Django项目的设置文件位于项目同名目录下,名叫settings.py。这个模块,集合了整个项目方方面面的设置属性,是项目启动和提供服务的根本保证。一、简述settings.py文件本质上是一个Python模块,带有模块级别的变量。下面是一些示例设置:ALLOWE...转载 2018-12-25 16:06:56 · 184 阅读 · 0 评论 -
Django表单API详解
声明:本文转载自http://www.liujiangblog.com/course/django/153,供参考学习使用Form要么是绑定的,那么它能够验证数据,并渲染表单及其数据,然后生成HTML表单。如果未绑定,则无法进行验证(因为没有数据可以验证!),但它仍然可以以HTML形式呈现空白表单。表单类原型:class Form[source]若需要创建一个未绑定的Form实例,只需简单地...转载 2018-12-25 14:19:39 · 499 阅读 · 0 评论 -
简单了解logger.debug
看别人代码里常出现LOGGER.debug,以前都不甚了解,现在来了解一下简单的说,就是配合log的等级过滤输出比如,你在开发的时候,要验证一个方法有没有被调用到,为了方便调试,通常会在这个方法开始的时候加一些system.out。但是项目真正发布的时候这些代码通常是要移除掉的,所以通常更建议用logger来记录所以你可能会加logger.debug。 为什么是debug而不是info ...转载 2018-07-19 21:47:35 · 3403 阅读 · 0 评论 -
异步函数(即协程)
调用生成器函数,会返回一个生成器; 调用异步函数,会返回一个协程 异步协程为什么能够提高下载效率? 发送请求后,需要等待服务器返回response,而使用异步请求可以在等待期间处理别的事情; 异步请求充分利用了等待时间,所以异步协程能提高下载效率;使用异步协程实现批量下载#创建协程init_req = start_request()task = asyncio.ensur...原创 2018-08-17 21:11:25 · 1312 阅读 · 0 评论 -
Python中赋值、浅拷贝、深拷贝的区别?
1.赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。2.浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果引用的方式修改其中的一个对象,另外一个也会修改改变) {1.完全切片方法;2.工厂函数,如list();3.copy模块的copy() }3.深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变) ...原创 2018-08-22 09:58:54 · 116 阅读 · 0 评论 -
python经典面试题
1.什么是Python自省? python自省是python具有的一种能力,使程序员面向对象的语言所写的程序在运行时,能够获得对象的python类型,python是一种解释性语言,为程序员提供了极大的灵活性和控制力。2.什么是PEP 8? PEP8是一种编程规范,内容是一些关于如何让你的程序更具有可读性的建议。3.什么是python的命名空间? 在python中所有的名字都存在于一个...原创 2018-08-22 15:37:15 · 553 阅读 · 0 评论 -
Python多进程原理与实现
1 进程的基本概念什么是进程? 进程就是一个程序在一个数据集上的一次动态执行过程。进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在执行过程中所需要使用的资源;进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志。进程的生命周期:创建(New)、...转载 2018-08-21 16:16:29 · 20573 阅读 · 3 评论 -
Python多线程的原理与实现
Python多线程原理与实战目的:(1)了解python线程执行原理(2)掌握多线程编程与线程同步(3)了解线程池的使用1 线程基本概念1.1 线程是什么?线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别: (1) 地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间; (2) ...转载 2018-08-21 17:55:21 · 77040 阅读 · 15 评论 -
代理池的使用
代理池的使用服务器会检测某个IP在单位时间内的请求次数,如果超过了某个阀值,那么服务器会直接拒绝,返回一些错误信息代理的设置、代理池的维护、付费代理的使用、ADSL拨号代理的搭建方法多种请求库的代理设置方法代理池的维护代理池的基本模块:存储模块、获取模块、检测模块、接口模块存储模块:使用redis的有序集合,用来做代理的去重和状态标识获取模块:此模块尽量从不同来...原创 2018-08-21 20:46:24 · 1703 阅读 · 1 评论 -
单例模式
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类被称为单例类,单例模式是一种对象创建型模式。class User(object): __instance = None def __init__(self,name): self.name = name def __new__(cls,name): if not...原创 2018-08-25 17:34:55 · 142 阅读 · 0 评论 -
python出现"pip is configured with locations that require TLS/SSL, however the ssl....."错误解决办法
解决方法新版的pip默认要使用SSL,可以通过设置修改,修改pip.conf文件;还有一种办法是openssl-dev,然后重新编译安装,只是在编译的过程中加入 --enable-optimizations具体如下:sudo yum install openssl-devel然后./configure --enable-optimizationsmake && mak...原创 2018-09-24 20:23:03 · 30288 阅读 · 3 评论 -
Python多线程实例
实例一from threading import Thread, current_threadimport timeisStop = False # 全局变量def get(url): print(current_thread().name, ':正在下载', url) while True: if isStop: return...原创 2018-11-20 17:12:15 · 758 阅读 · 0 评论 -
关于requests Post方式上传文件
背景前两天需要调用一个接口,使用post方式上传文件。于是使用Python的requests进行发送post请求,但是一直报服务器500的错误,感觉很纳闷,折磨我好久之后才注意到之前使用的post请求只是携带一些字段,而这次是需要向接口上传文件。步骤先这样,,,再这样,,,嗯,解决了,先说一下post请求四种传送正文的方式;POST请求四种传递正文的方式(1)请求正文是applicati...原创 2018-12-02 11:47:14 · 20962 阅读 · 3 评论 -
使用Python ssh tunnel链接Mysql数据库
#自https://my.oschina.net/1123581321/blog/774704转载安装 sshtunnelsudo apt-get install libffi-devsudo pip install sshtunnel使用示例:def test(): from sshtunnel import SSHTunnelForwarder import pym...转载 2018-12-02 11:54:59 · 769 阅读 · 0 评论 -
使用Flask+uwsgi+Nginx部署Flask正式环境
声明:本文转载自https://www.missshi.cn/api/view/blog/5b1511a213d85b1251000000,用以参考学习。在本文中,我们将以实际项目为例,讲解如何使用Flask+uwsgi+Nginx部署Flask正式环境。环境准备在开始正式讲解之前,我们将首先进行环境准备。Step1:安装Python,pip以及nginx:sudo apt-get up...转载 2018-12-13 15:18:23 · 1620 阅读 · 0 评论 -
下载m3u8视频及在Linux下将ts合并为mp4格式
背景在爬取视频时偶尔会遇见m3u8格式的视频链接,视频下载后为多个ts文件,下面分享如何下载m3u8格式视频以及在Linux下将ts文件合成mp4文件。m3u8格式链接解析url = xxxxx.m3u8#获取m3u8文件的文本信息all_content = requests.get(url=url, verify=False).text#解析文本信息file_line = al...原创 2018-12-12 10:39:34 · 6539 阅读 · 0 评论 -
python selenium三种等待方式详解
引言:当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素不可见,那就必须要加等待了,等待元素可见再继续运行程序;正文:1.强制等待(sleep)设置等待最简单的方法就是强制等待,其实就是time.sleep()方法,不管它什么情况,让程序暂停运行一定时间,时间过后继续运行;缺点时不智能,设置的时间太短,元素还没有加载出来,那照...转载 2019-01-03 20:46:06 · 738 阅读 · 0 评论 -
Django表单之使用表单
本文转载自http://www.liujiangblog.com/course/django/152,供记录学习使用。假设你想从表单接收用户名数据,一般情况下,你需要在HTML中手动编写一个如下的表单元素:&amp;lt;form action=&quot;/your-name/&quot; method=&quot;post&quot;&amp;gt; &amp;lt;labe转载 2018-12-24 17:30:01 · 2795 阅读 · 0 评论 -
ubuntu下python3.6的安装及配置
一.开发平台操作系统:ubuntu 16.04 LTS二.操作步骤1.直接在官网下载 Python3.6.5 的源代码,解压缩;2.进入解压文件夹,打开终端,按以下步骤执行: $ ./configure --prefix=/opt/python3.6$ make$ sudo make install3.安装完成之后,使用 vim ~/.bashrc打开配置文件,并在文件最后一行新建一行...原创 2018-07-10 21:18:54 · 377 阅读 · 0 评论