![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 72
threegirl
这个作者很懒,什么都没留下…
展开
-
使用rabbitmq对文本使用tf_idf算法进行分析的项目记录
之前用爬虫爬了三个源,共爬取了30w左右的博客,爬虫项目:itmap_spiders。接着对这些文本进行分析,要求是找出每篇文章的关键词。我对TF*IDF算法有一些了解,就选择了它。项目:itmap_data_analysis。业务架构由于数据量有点大,所以使用消息队列进行拆分,拆分标准是按照步骤来。具体的步骤如下图所示。技术栈:使用pika来与RabbitMQ连接...原创 2018-09-02 17:45:49 · 176 阅读 · 0 评论 -
简单使用python多进程并发下载大量图片
如果有大量图片想要下载,肯定希望速度越快越好,那么就要使用多任务。python支持多线程和多进程。但是解释器中的GIL锁导致任何Python线程执行前,必须先获得GIL锁,然后,每执行100条字节码,解释器就自动释放GIL锁,让别的线程有机会执行。所以多线程并不能达到理想的效果。使用多进程的话,mutilprocessing是个很好用的库。如果是一个进程一个进程的创建,使用其中的Proce...原创 2015-10-25 13:40:00 · 1468 阅读 · 19 评论 -
用python实现模拟登录人人网
我决定从头说起。懂的人可以快速略过前面理论看最后几张图。web基础知识从OSI参考模型(从低到高:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)来说,我们的互联网属于应用层。从TCP/IP参考模型(从低到高:物理层,数据链路层,网络层,传输层,应用层)来说,也同样如此。互联网上有各种各样的资源,包括文本、图片、音频、视频……通常所见的Web模型需要包括两部分:客户端,...原创 2015-09-20 01:09:00 · 1315 阅读 · 28 评论 -
一个人人网python爬虫
background不知道现在还有多少人在使用人人网,但是在我刚上大学的时候人人网还有开心网还是很火的,然而它们都相继死去了。倒是高中时喜欢玩的QQ空间依旧风生水起。但是毕竟在人人网上留下了很多东西,将来一不小心人人网关掉了(这种可能我感觉越来越大,毕竟资本市场不会说谎),这些东西丢掉岂不是很可惜?每天发生的各种琐事,你此时弃之如敝屐,珍之如瑰宝,在不久的将来会化作一串串珍珠,让人凭吊...原创 2015-09-19 22:08:00 · 215 阅读 · 7 评论 -
使用python下载新浪博客
7个月前的一篇todo-list:一个下载新浪博客工具的to-do list今天终于可以说是完工了。代码链接主要的技术点:使用urllib和urllib2获取网页内容 使用BeautifulSoup和re来解析网页内容编码思路:一、获取博文列表我想要下载的目标博客:缠中说禅的博客分析此博客,发现点击“博客目录”后可获取较调理的信息:屏幕快照 2015-09-08...原创 2015-09-08 01:02:00 · 452 阅读 · 2 评论 -
关于BeautifulSoup的总结
最近一直在用BeautifulSoup,但是语法很容易忘记。在这里做个学习总结吧。参考:Beautiful Soup 4.2.0 文档功能BeautifulSoup是用来从HTML或XML中提取数据的Python库。导入使用方法:from bs4 import BeautifulSoupsoup = BeautifulSoup(html)编码soup使用Unic...原创 2016-04-02 16:37:00 · 386 阅读 · 0 评论 -
使用Django建立Blog的记录和总结
Django 版本为1.9以上Django框架结构:对django框架架构和request/response处理流程的分析Blog搭建参考:用Django搭建个人博客Django 搭建简易博客教程代码:https://github.com/threegirl2014/blog命令行常用命令: python manage.py rumserver xx.xx.xx.xx:yyy...原创 2016-09-26 11:37:00 · 310 阅读 · 0 评论 -
python中的import(涉及pkgutil和inspect包)
python中万物皆对象。维度比较大的有模块、包。一个.py文件就是一个python模块(module),如果一个目录下面有一个__init__.py文件,那么这个目录就是一个python包(package)。当然,这只是极简版的概念。实际上包是一种特殊的模块,而任何定义了__path__属性的模块都被当做包。以两个下划线开头,以两个下划线结尾的属性,暂称魔法属性(自创的),对应...原创 2016-12-27 00:01:00 · 1008 阅读 · 0 评论 -
最近处理的性能优化总结思考
按照常理,性能优化应该是属于比较高级,处于项目中后期的工作了,但是如果实现不给力,在项目初期就可以遇到了。很多人都嫌弃Python慢,个人认为他们之中90%都没有资格这么说,一方面,需要高性能的地方并不是每个项目都需要,另一方面,他们自己写的代码烂的要死,才是罪魁祸首。Python的代码可读性非常好,利于开发和维护,是对开发者友好的语言。但如果代码写成一团糟,没有扬长避短,导致维护困难,开...原创 2017-06-11 18:11:00 · 219 阅读 · 0 评论 -
Django JWT
参考基于 Token 的身份验证、JSON Web Token - 在Web应用间安全地传递信息、基于cookie的django-rest-jwt认证前两篇是关于原理的,最后一篇是和django-restframework相关的。JWT原理除了使用session外,还可以使用token进行用户认证(Authentication)。一个很大的区别是,session需要在服务端存储能...原创 2018-05-21 18:32:00 · 925 阅读 · 0 评论 -
django middleware
参考:Django 源码学习(3)——中间件Django Middleware官方文档Django==2.0.4源码一、相关代码分布middleware加载:django.core.handlers.base.BaseHandler的load_middleware()。运行时:django.utils.deprecation.MiddlewareMixin。django.core....原创 2018-05-29 00:29:00 · 280 阅读 · 0 评论 -
flask/odoo/werkzeug的url mapping
参考:Werkzeug库——routing模块flask 源码解析:路由odoo(8.0)源码werkzeug(0.14.1)源码flask(0.11.1)源码一个web框架必须解决一个问题:当一个Request进入系统时,怎样去确定使用哪个函数或方法来处理。Django自己处理这个问题。Flask和Odoo(一个OpenERP)使用Werkzeug库(本身就是Flask的关联...原创 2018-05-31 22:54:00 · 459 阅读 · 0 评论 -
python wsgi+Odoo 的启动
参考:WSGI初探Odoo web 机制浅析python的 WSGI 简介python wsgi 简介wsgi的定义一个请求从客户端发到服务端,具体需要怎么样才能无缝对接呢?在python中,服务端负责实际处理逻辑的有好几种,常见的也就是被大家所熟知的各个框架,如Django、Flask等。那请求经过怎样的处理进入到这些负责具体逻辑的框架呢?那肯定不会是一个框架一个处理方式,那肯...原创 2018-06-05 22:11:00 · 1082 阅读 · 0 评论 -
pythonhtml2image: imgkit 和 wkhtmltoimage的坑
场景需要根据信息,将一个动态页面生成图片。经过调研,发现只有imgkit符合要求。imgkit其实是调用wkhtmltopdf的wkhtmltoimage(wkhtmltopdf包含wkhtmltopdf和wkhtmltoimage两个工具)来实现功能。wkhtmltopdf和wkhtmltoimage是通过调用QT来实现功能:wkhtmltopdf and wkhtmltoimage...原创 2018-07-12 17:24:00 · 6901 阅读 · 0 评论 -
[code snippet]微信随机红包算法实现
class RedEnvelopeError(ValueError): """ 红包赋值错误 """class RedEnvelope: def __init__(self, name=None): self.name = 'red_envelope:{}'.format(uuid.uuid1().hex) if name is None ...原创 2018-07-17 18:02:00 · 483 阅读 · 0 评论 -
[总结]python逐行性能分析
总是忘记,做个记录。性能定义一般而言,处理一个请求的速度是一个重要的性能指标(Latency, 系统延迟)。观察工具有时候不需要特殊工具,直接看一个http请求的时长即可。定位瓶颈line_profiler是一个可以查看每行代码的执行次数、执行时间的工具。安装好后,可以在代码中对方法/函数添加装饰器@profile,然后在命令行使用kernprof -l -...原创 2018-08-02 17:35:17 · 613 阅读 · 0 评论 -
python list 删除元素
以num_list = [1, 2, 2, 3, 4, 5]为例。删除一个可以确定的元素,一共有三种方法。 1. num_list.remove(2),会删除第一个值为2的元素。 2. num_list.pop(1),会弹出索引为1的元素,若不传参数,则弹出最后一个元素。 3. del num_list[1],会删除索引为1的元素。 4. 还可以使用切片来达到目的,属于重新构造一个新的...原创 2018-08-08 16:10:49 · 248 阅读 · 0 评论 -
调整Django菜单顺序
不修改Django源码让admin中的Model列表按注册顺序显示from django.contrib import adminfrom django.utils.text import capfirstfrom django.utils.datastructures import OrderedDictdef find_model_index(name): count ...原创 2018-07-17 18:13:00 · 3792 阅读 · 0 评论 -
对文本使用tf_idf算法进行分析的项目记录(二)
上回写的是使用消息队列来做这个项目,这次完全抛弃了它。为什么抛弃呢?我当初设想的是,步骤很明确,完全可以独立开,这样消息队列正好适配。 但是,我对处理速度和吞吐量没有明确的概念,导致如果用之前的方案的话,屈屈30w文章就能跑上好几天。为什么会这么慢呢?原因一,处理的个体太小。按照我的设想每个文档每个步骤都会往队列里塞一个消息,结果导致处理的数据量巨大无比。如果能够...原创 2018-09-08 22:00:01 · 348 阅读 · 0 评论