自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 falsk实现结巴分词自定义词典定时更新及加载

问题使用flask配合结巴库做了一个分词接口,做定时任务每天从数据库拉取自定义词汇作为其自定义词典,使用uwsgi部署.问题点是在uwsgi运行时,即使从数据库拉取了数据,词典也不会加载到内存中,也就是新的词汇不生效解决办法办法一在flask再添加一个定时任务,当词典拉取后就调用词典加载程序,将词典加载到内存中 --不可行原因:因为在uwsgi运行时,之前的词典已经加载到内存中,在次加载词典不生效方法二uwsgi中有一个配置py-autoreload=1,当有py文件改变时会自动重启uw

2020-09-04 17:07:58 568

原创 贝叶斯学习(一)

前言最近发现一本关于贝叶斯的书籍,很是适合作为贝叶斯的入门书籍来看,在这里推荐给大家 <<统计学管我什么事:生活中的极简统计学>>这本书以浅显的小例子来解释贝叶斯推理,只需要会做四则运算,便可以掌握贝叶斯统计学.以下作为读书记录贝叶斯统计的优势在于,“在数据少的情况下也可以进行推测,数据越多,推测结果越准确”,以及"对所获的信息可以作数瞬时反应,自动升级推测"的学习功...

2020-03-26 16:58:41 755

原创 django使用全文索引

前言最近在学习天天生鲜项目,记录一下在django中如何使用全文搜索我们在面对商品搜索时可以通过使用sql语句进行查询,但是这样效率很低,推荐使用全文搜索框架进行检索。haystack及whoosh介绍haystack 是django的开源搜索框架,该框架支持Solr、Elasticsearch、Whoosh、Xapian搜索引擎,不用直接更改代码,直接切换引擎,减少代码量Whoosh...

2019-10-29 17:48:54 708

原创 关于部分版本django用户验证时authenticate()函数一直返回None的解决方法

一、背景最近在跟着网上教程学习django的天天生鲜项目,在用户登陆验证部分使用的是django内置的authenticate()函数,发现authenticate()函数一直返回None,我的django版本是1.11。感觉的这个函数的问题,最后在网上找到了答案,这里记录一下。二、代码class LoginView(View): '''登录视图类''' def get(s...

2019-10-05 11:28:33 1537 2

大众点评字体破解思路

前言前一段时间研究了一下大众点评网站的爬虫,关于大众点评的字体反爬及破解详情记录一下。

2019-09-06 14:11:44 1317 1

转载 爬取websocket实时数据

一、什么是websocketWebsocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务端之间的数据交换变得更加简单,允许服务器主动向客户端推送数据。在Websocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。Websocekt优点:较少的控制开销:只需要进行一次握手,携带一次请求头信息即可,后续只传输数据...

2019-08-16 17:11:08 1931 2

原创 Python3 CookBook | 元编程(一)

1、在函数上添加包装器【问题】你想在函数上添加一个包装器,增加额外的操作处理(比如日志、计时等)【解决方法】如果你想使用额外的代码包装一个函数,可以定义一个装饰器,如下:def timethis(func): @wraps(func) def wrapper(*args,**kwargs): start = time.time() resu...

2019-06-13 19:22:40 266

原创 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 120

转载 Python3 CookBook|函数(二)

1、减少可调用对象的参数个数

2019-06-13 11:34:12 190

转载 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 2739

原创 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 181

原创 APP开启SSLPinning后导致不能抓包解决方案

什么是SSLPinning?SSL Pinning是一种防止中间人攻击(MITM)的技术,主要机制是在客户端发起请求–>收到服务器发来的证书进行校验,如果收到的证书不被客户端信任,就直接断开连接不继续求情。所以在遇到对关键请求开启SSL Pinning的APP时,我们抓包就只能看到APP上提示无法连接网络或者请求失败之类的提示;而在抓包工具上面,要么就只能看到一排 CONNECT 请求,...

2019-04-26 10:34:40 19306 1

原创 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 226

原创 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 5255

转载 Python3 CookBook| 数据结构和算法(一)

【注】文章转载自’https://zhuanlan.zhihu.com/p/31578224’,仅供学习使用以下测试代码全部基于 Python3。Python 提供了大量的内置数据结构,包括列表,集合以及字典。在工作和编码中,可以说天天和它们打交道,经常碰到查询,排序和过滤等等这些问题,虽然每次解决这些问题并不困难,但总感觉代码写的很麻烦,不够优雅。最近通过阅读《Python3 CookBo...

2019-02-12 19:10:10 180

原创 向列表中循环添加字典时数据覆盖为题的分析与解决

问题:预期打印出来的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 1581

转载 selenium切换窗口的几种方法小结

第一种方法使用场景打开多个窗口,需要定位到新打开的窗口;使用方法:# 获取打开的多个窗口句柄windows = driver.window_handles# 切换到当前最新打开的窗口driver.switch_to.window(windows[-1])举例说明# _._ coding:utf-8 _._from selenium import webdriverimpor...

2019-01-09 20:01:35 28717 3

原创 selenium循环点击无法定位元素问题

【问题】:selenium循环点击进入下级页面时,第一次点击返回后不能继续循环,无法定位元素。【原因】:selenium模拟点击进入下一页操作后退出,原页面刷新后元素的属性没有变,但是之前获得的element却变了,之前所有的额定位元素element都过期了。【解决】:1.页面刷新后,在循环体中重新定位一次,覆盖掉之前的定位。2.第一次获取全部元素后,通过len()函数获取循环总个数;3...

2019-01-09 19:35:55 2662

转载 python selenium三种等待方式详解

引言:当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素不可见,那就必须要加等待了,等待元素可见再继续运行程序;正文:1.强制等待(sleep)设置等待最简单的方法就是强制等待,其实就是time.sleep()方法,不管它什么情况,让程序暂停运行一定时间,时间过后继续运行;缺点时不智能,设置的时间太短,元素还没有加载出来,那照...

2019-01-03 20:46:06 720

转载 Django综合篇之网站地图sitemap

声明:本文转载自http://www.liujiangblog.com/course/django/169,仅供参考学习使用。网站地图是根据网站的结构、框架、内容,生成的导航网页,是一个网站所有链接的容器。很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指路,增加网站内容页面的收录概率。网站地图一般存放在域名根目录下并命名为s...

2018-12-25 17:22:37 971

转载 Django综合篇之会话session

声明:本文转载自http://www.liujiangblog.com/course/django/168,仅用于参考学习使用因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的、独立的。通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户。对于静态网站,这可能不是个问题,而对于动态网站,尤其是京东、天猫、银行等购物或...

2018-12-25 17:10:56 331

转载 Django综合篇之核心配置项

声明:本文转载自http://www.liujiangblog.com/course/django/164,仅供参考学习使用。Django的默认配置文件中,包含上百条配置项目,其中很多是我们‘一辈子’都不碰到或者不需要单独配置的,这些项目在需要的时候再去查手册。强调:配置的默认值不是在settings.py文件中!不要以为settings.py中的配置值就是默认值,参考前文。settings...

2018-12-25 16:45:58 502

转载 Django综合篇之配置Django

声明:本文转载自http://www.liujiangblog.com/course/django/163,仅供参考学习使用Django项目的设置文件位于项目同名目录下,名叫settings.py。这个模块,集合了整个项目方方面面的设置属性,是项目启动和提供服务的根本保证。一、简述settings.py文件本质上是一个Python模块,带有模块级别的变量。下面是一些示例设置:ALLOWE...

2018-12-25 16:06:56 167

转载 Django表单API详解

声明:本文转载自http://www.liujiangblog.com/course/django/153,供参考学习使用Form要么是绑定的,那么它能够验证数据,并渲染表单及其数据,然后生成HTML表单。如果未绑定,则无法进行验证(因为没有数据可以验证!),但它仍然可以以HTML形式呈现空白表单。表单类原型:class Form[source]若需要创建一个未绑定的Form实例,只需简单地...

2018-12-25 14:19:39 476

转载 Django表单之使用表单

本文转载自http://www.liujiangblog.com/course/django/152,供记录学习使用。假设你想从表单接收用户名数据,一般情况下,你需要在HTML中手动编写一个如下的表单元素:&amp;amp;lt;form action=&amp;quot;/your-name/&amp;quot; method=&amp;quot;post&amp;quot;&amp;amp;gt; &amp;amp;lt;labe

2018-12-24 17:30:01 2778

转载 使用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 1594

原创 下载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 6507

原创 mitmdump设置二次代理抓包国外软件

背景:之前一直想使用抓包软件抓Vigo video的包,奈何是海外软件,需要翻墙,翻墙后各种抓包软件都试过,因为太菜,国外代理不会配置,因此这件事一直搁置,今天看见在简书上看见一片文章,https://www.jianshu.com/p/dfd1e2753d71, MITMProxy如何配置二次代理,给了我启发,在mitmdump成功设置了国外代理。附上代码:def request() : ...

2018-12-07 21:05:34 4713 4

转载 使用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 753

原创 关于requests Post方式上传文件

背景前两天需要调用一个接口,使用post方式上传文件。于是使用Python的requests进行发送post请求,但是一直报服务器500的错误,感觉很纳闷,折磨我好久之后才注意到之前使用的post请求只是携带一些字段,而这次是需要向接口上传文件。步骤先这样,,,再这样,,,嗯,解决了,先说一下post请求四种传送正文的方式;POST请求四种传递正文的方式(1)请求正文是applicati...

2018-12-02 11:47:14 20781 3

原创 使用mitmdump爬取手机

操作系统:window 10python 版本:python 3.6.5抓包工具fiddler、mitmproxy工具结介绍fiddler就不介绍了,是常用的抓包工具。这里介绍一下mitmproxy。mitmproxy是一个支持HTTP和HTTPS的抓包程序,有类似于Fiddler、Charles的功能,只不过它是一个控制台的形式操作。mitmproxy还有两个关联组件。一个是mitm...

2018-11-23 17:53:16 3016 5

原创 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 745

原创 Selenium添加Cookie绕过验证码登录

本文以3D片源网站为例,使用Selenium首先模拟登录,手动输入验证码,获取登录之后的cookie,其次将登录之后的cookie写入 .yaml文件,在此登录时直接读取文件。首先获取登陆后的cookie,并写入文件。import yaml,time,osfrom selenium import webdriverurl = 'http://www.3dpianyuan.net/'dri...

2018-11-11 16:49:40 1232

转载 Selenium添加Cookie模拟无验证码登录

最近爬虫碰见需要用selenium模拟登录,有验证码滑块+图片点击验证,在解决过程中发现一篇很好的示例,虽然是无验证码的那种,但是还不错,先记下来!代码及注释如下:#!coding=utf-8import timefrom selenium import webdriverimport pickleclass BaiduSpider(object): def __init_...

2018-11-08 20:36:51 487

转载 爬虫之ssh证书警告错误

在写爬虫时偶尔会碰见ssh证书警告的错误,得不到我们想要的信息,这里转载一个我在博客园见到的一篇博客,三种方式解决这个问题。错误信息:requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed...

2018-10-31 10:44:51 678

原创 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 &amp;&amp; mak...

2018-09-24 20:23:03 30201 3

转载 scrapy框架中多个spider同时运行:scrapyd的部署及使用

scrapy是一个爬虫框架,而scrapyd是一个网页版管理scrapy的工具,scrapy爬虫写好后,可以使用命令运行,但是如果能够在网页上操作就比较方便。scrapyd就是为了解决这个问题,能够在网页端查看正在执行的任务,也能新建和终止爬虫任务,功能比较强大。Scrapyd使用详解:1.安装scrapydpip install scrapyd2.安装scrapy-cli...

2018-09-04 17:32:54 2978

原创 单例模式

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类被称为单例类,单例模式是一种对象创建型模式。class User(object): __instance = None def __init__(self,name): self.name = name def __new__(cls,name): if not...

2018-08-25 17:34:55 133

原创 python经典面试题

1.什么是Python自省? python自省是python具有的一种能力,使程序员面向对象的语言所写的程序在运行时,能够获得对象的python类型,python是一种解释性语言,为程序员提供了极大的灵活性和控制力。2.什么是PEP 8? PEP8是一种编程规范,内容是一些关于如何让你的程序更具有可读性的建议。3.什么是python的命名空间? 在python中所有的名字都存在于一个...

2018-08-22 15:37:15 544

原创 Python中赋值、浅拷贝、深拷贝的区别?

1.赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。2.浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果引用的方式修改其中的一个对象,另外一个也会修改改变) {1.完全切片方法;2.工厂函数,如list();3.copy模块的copy() }3.深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变) ...

2018-08-22 09:58:54 112

空空如也

空空如也

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

TA关注的人

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