用户您好!请先登录!

分类目录Python

Python开源项目推荐

Mybridge评估了5000个开源项目,从中选出30多个最佳项目,开发者和学生都可以用来作为项目实践或者项目开发参考。

接下来是完整列表:

1. Manim – Mathematical Animation Engine

对比了Github上5000份Python开源之后,大神精选了36个项目

简介:Manim是解释性数学视频的动画引擎。用于以编程方式创建精确的动画,如3Blue1Brown的视频中所展示的样例。

地址:https://github.com/3b1b/manim

阅读更多

常用的Python Web程序的部署方式

通常来说, Web应用一般是三层结构:Web Server====》 Application=====》 DB Server

主流的 Web server 一个巴掌就能数出来,Apache,Lighttpd,Nginx,IIS等。 Application,中文名叫做应用服务,就是你基于某个web framework写的应用代码;DB server 泛指存储服务,web开发中用mysql比较多,最近几年因为网站规模扩大,memcache,redis这种key-value等存储也流行开来。

放在最前面的web server有3个功能:

  • 高效率处理静态文件,web server都是用c开发,调用是native的函数,对IO,文件传输都做针对性的优化
  • 充当一个简易的网络防火墙,可以denny一些ip,简单的控制并发连接数量等等,聊胜于无
  • 处理高并发短连接请求,把成千上万用户的request 通过内网的几十个长连接进行转发,原因一个是web server处理高并发很专业,另外一个原因是大部分的application所用的框架都不具备处理高并发的能力

实际上,市面上有部分web framework由于内置了支持epoll/kqueue 等高效网络库,而具备了处理高并发的能力,比如说 python的tornado,java系的tomcat,jetty等等,有人就去掉前端的web server,直接裸奔,但是在部署公网应用时候,最好别这样做,因为前面提到的1,2两个原因,用户brower到web server的网络状况是千奇百怪,你无法想象的。

阅读更多

卷积神经网络入门:CNN通俗解析

摘要: CNN基础知识介绍及TensorFlow具体实现,对于初学者或者求职者而言是一份不可多得的资料。

定义:

简而言之,卷积神经网络(Convolutional Neural Networks)是一种深度学习模型或类似于人工神经网络的多层感知器,常用来分析视觉图像。卷积神经网络的创始人是着名的计算机科学家Yann LeCun,目前在Facebook工作,他是第一个通过卷积神经网络在MNIST数据集上解决手写数字问题的人。

卷积神经网络的出现是受到了生物处理过程的启发,因为神经元之间的连接模式类似于动物的视觉皮层组织。

一文入门卷积神经网络:CNN通俗解析

人脑的视觉结构

个体皮层神经元仅在被称为感受野的视野受限区域中对刺激作出反应,不同神经元的感受野部分重叠,使得它们能够覆盖整个视野。

阅读更多

几个常的Python爬虫框架

每一个网页都有一个对应的url,而url在页面上又有很多指向其他页面的url,这种url之间相互的指向关系就形成一个网,这就是互联网。通常,我们使用浏览器访问互联网,获取需要的、感兴趣的信息,但这种方式效率低下。对于批量数据的获取,网络爬虫有着天生的优势。

网络爬虫是一段自动抓取互联网信息的程序,它模仿浏览器访问互联网的过程,下载网页,然后解析得到需要的数据。此外,爬虫可以从一个url出发,访问它关联的所有url,并且从每个页面上提取我们所需要的、有价值的数据。

Python是编写爬虫程序的常用工具。Python中有多个模块使得爬虫编写非常简单,常用的模块有:urllib、requests、re、bs4、Selenium等。

1 – 通用爬虫框架

通用爬虫框架定义了编写一个网络爬虫最基本的过程。一个通用的爬虫框架通常包含待抓取的URL列表、已抓取的URL列表、URL下载器、URL解析器、数据库等几个模块。根据任务的需求,还可以加入监控模块、定时启动模块等。下图是一个通用爬虫框架示意图:

通用爬虫框架的工作流程如下:
step 1、确定种子URL,并存入待抓取的URL列表;
step 2、从待抓取的URL列表中随机提取一个URL,发送到URL下载器;
step 3、URL下载器开始下载页面,如果下载成功,将页面发送给URL解析器,同时把URL存入已抓取的URL列表;如果下载失败,将URL重新存入待抓取的URL列表,重复step 2;
step 4、URL解析器开始解析页面,将获得的新的URL存入待抓取的URL列表,同时将需要的、有价值的数据存入数据库;
step 5、重复step2-4,直到待抓取的URL列表为空。

2 – Scrapy框架

Scrapy是用python下的一个互联网爬虫应用框架,它能够爬取网站并抽取结构化的数据,它也能够使用API获取数据。Scrapy框架中有很多实用的内置插件和中间件,如:cookies and session handling、user-agent spoofing、robots.txt、crawl depth restriction等,这写插件和中间件使得Scrapy框架的实用性更强。Scrapy框架的示意图如下:

Scrapy框架的工作流程:首先从初始 URL 开始,Scheduler 会将其交给 Downloader 进行下载,下载之后会交给 Spider 进行分析,Spider 分析出来的结果有两种:一种是需要进一步抓取的链接,例如“下一页”的链接,这些东西会被传回 Scheduler;另一种是需要保存的数据,它们则被送到 Item Pipeline 那里,那是对数据进行后期处理(详细分析、过滤、存储等)的地方。

3 – PySpider框架

PySpider是国人用python编写的一个功能强大的网络爬虫框架。主要特性如下:
1、强大的WebUI,包含:脚本编辑器、任务监控器,项目管理器和结果查看器;
2、多数据库支持,包括:MySQL, MongoDB, Redis, SQLite, Elasticsearch; PostgreSQL with SQLAlchemy等;
3、使用RabbitMQ, Beanstalk, RedisKombu作为消息队列;
4、支持任务优先级设定、定时任务、失败后重试等;
5、支持分布式爬虫

其框架示意图如下:

PySpider模块之间通过消息队列连接。每一个模块都运行在各自的进程/线程上,消息队列也有一个独立的线程。这就意味着可以充分利用多个cpu的优势。

参考资料

网络爬虫基本原理 http://www.cnblogs.com/wawlian/archive/2012/06/18/2553061.html

Java爬虫框架简介 http://jingyan.baidu.com/article/f71d6037ad72111ab741d14f.html

基于scrapy框架爬虫学习小结 http://blog.csdn.net/qq_29245097/article/details/51586802

PySpider简介 http://docs.pyspider.org/en/latest/

Python 主流 Web 编程框架

网络框架及MVC架构

所谓网络框架是指这样的一组Python包,它能够使开发者专注于网站应用业务逻辑的开发,而无须处理网络应用底层的协议、线程、进程等方面。这样能大大提高开发者的工作效率,同时提高网络应用程序的质量。

在目前Python语言的几十个开发框架中,几乎所有的全栈网络框架都强制或引导开发者使用MVC架构开发Web应用。所谓全栈网络框架,是指除了封装网络和线程操作,还提供HTTP栈、数据库读写管理、HTML模板引擎等一系列功能的网络框架。本文重点讲解的Django、Tornado和Flask是全栈网络框架的典型标杆;而Twisted更专注于网络底层的高性能封装而不提供HTML模板引擎等界面功能,所以不能称之为全栈框架。

阅读更多

几点人脸识别、智能聊天和视频下载的Python库

这里介绍几个非常有趣的Python模块,涉及人脸识别、智能聊天和视频下载,感兴趣的朋友可以尝试一下,非常简单:

人脸识别

这里主要用到dlib,face recognition model,face recognition这3个模块,自带有训练好的人脸识别模型,可以快速识别人脸并标注,下面我简单介绍一下实现过程:

1.首先,安装dlib,face recognition model,face recognition这3个模块,这个直接在cmd窗口输入安装命令“pip install dlib face_recognition_models face_recognition”就行,如下,我的环境已经安装:

2.安装完成后,我们就可以直接编码来实现人脸识别了,测试代码如下,基本思路先读取人脸图片,然后加载模型定位人脸,最后再标注出来,这里用到opencv模块进行图片显示,如果没安装的话,输入命令“pip install opencv-python”就行:

点击运行程序,截图如下,已经成功标注出人脸,识别准确率还是非常高的,唯一的缺点就是图片颜色有些失真:

智能聊天

这里主要用到itchat这个模块,可以自动获取和发送微信消息,借助于免费的图灵机器人,可以很轻松的实现智能聊天的功能,下面我简单介绍一下实现过程:

1.首先,安装itchat模块,这个也直接输入安装命令“pip install itchat”就行,如下,我的环境已经正确安装:

2.接着需要注册图灵机器人,获取API接口,实现自动匹配消息的功能,这个直接在官网注册就行,地址http://www.tuling123.com/,成功登陆后,在主界面点击“创建机器人”按钮,勾选如下信息:

机器人创建成功后,就会在管理页面看到刚才创建的机器人,点击进去,这里我们需要记住这个apikey值,后面程序就是借助这个key值接入机器人:

3.最后就是编程实现智能聊天程序,测试代码如下,基本思想先获取好友的发来的微信消息,然后传递给图灵机器人,匹配到回复消息,最后再发送给好友:

运行程序,扫码登录,任意向一个微信好友发送消息,只要好友回复消息,机器人便会自动聊天,非常智能,如下,这里你也可以注册语音消息和图片消息,更有趣:

下载视频

这里主要用到youtube-dl这个模块,可以免费下载B站、优酷等网站视频,下面我简单介绍一下这个模块的安装和使用:

1.首先,安装youtube-dl模块,这个也直接在cmd窗口输入命令“pip install youtube-dl”就行,如下:

2.安装完成后,这里会自动将youtube-dl命令添加到环境变量中,接着我们就可以使用youtube-dl命令下载视频了,基本使用方式“youtube-dl 视频地址”,如下,这里可以直接下载B站视频:

3.当然,也支持批量下载的功能,将所有视频地址存放到一个txt文件中,然后用youtube-dl命令读取这个文件,实现批量下载,效果如下:

至此,我们就介绍完了这几个非常有趣的Python模块。总的来说,整个过程不难,只要你有一定的Python基础,熟悉一下上面的代码,很快就能掌握的,当然,还有许多其他有趣的模块,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

3行Python代码5秒抠图

曾几何时,「抠图」是一个难度系数想当高的活儿,但今天要介绍的这款神工具,只要 3 行代码 5 秒钟就可以完成高精度抠图,甚至都不用会代码,点两下鼠标就完成了。

感受下这款抠图工具抠地有多精细:

3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS
3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS
3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS
3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS
3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS

是不是很赞?什么 PS 、PPT 修图都 low 爆了,你软件还没打开,我这边都修完了。

这款工具叫:Remove.bg 。基于 Python、Ruby 和深度学习技术开发,通过强大的 AI 人工智能算法实现自动识别出前景主体与背景图,分分钟秒秒钟完成抠图。这样下去PS 设计师都快要下岗了。

怎么使用这款抠图工具呢?有多种简单方式。

首先是 Python 实现,很简单。

在网站上注册获取 API 后(不想那么麻烦可以用我的),一行代码安装抠图库:

pip install removebg

接下来只需要三行代码就可以完成一张抠图:

from removebg import RemoveBg
rmbg = RemoveBg("WPZ2Q4fraseKfAN9PPxxxxxx", "error.log") # 引号内是你获取的API
rmbg.remove_background_from_img_file("C:/Users/sony/Desktop/1.jpg") #图片地址

不仅能抠一张还可以批量抠图(把图片放到一个文件夹就可以了):

from removebg import RemoveBg
import os
rmbg = RemoveBg("WPZ2Q4fraseKfAN9PPxxxxxx", "error.log")
path = '%s/picture'%os.getcwd() #图片放到程序的同级文件夹 picture 里面
for pic in os.listdir(path):
rmbg.remove_background_from_img_file("%s\%s"%(path,pic))

是不是很爽?

3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS

默认生成的图片格式尺寸是标准的,每月最多免费处理 50 张照片。如果想生成高清甚至 4K 或者处理更多图片需要付费。

GitHub 库地址:https://github.com/brilam/remove-bg

除了代码还可以到官网在线抠图,只需要上传照片即可,不限图片处理次数:

3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS

扣完图可以马上换颜色或者背景:

3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS

除了在线版还可以下载软件到本地使用,支持 Windows / Mac / Linux 三平台

抠图还有另外一个用途就是抠证件照换背景色了,不会 PS 又不想花钱重照,使用它很快能搞定:

3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS