python类库大全,python常用库介绍
学Python,大家肯定都是从一个爬虫开始的。毕竟网上有丰富的类似资源,还有很多开源项目。
Python学习网络爬虫主要分为三个板块:抓取、分析和存储。
当我们在浏览器中输入一个url并按回车键时,后台会发生什么?
简单地说,在这个过程中发生了以下四个步骤:
找到域名对应的IP地址。
向IP对应的服务器发送请求。
服务器响应该请求并发回网页内容。
浏览器解析网页内容。
?
那么学习爬虫需要掌握哪些库呢?
通用:
URL lib-网络库(stdlib)。
请求-Web库。
grab-Web库(基于pycurl)。
pycurlWeb库(绑定到libcurl)。
URL lib 3Python HTTP库,安全连接池,支持文件post,高可用性。
http lib 2网络库。
RobBrowser——一个具有Python风格的简单Python库,可以在没有单独浏览器的情况下浏览网页。
mechanical soup-一个自动与网站交互的Python库。
一个有状态和可编程的网页浏览库。
socket底层网络接口(stdlib)。
Unirest for Python——Unirest是一组轻量级HTTP库,可以在多种语言中使用。
Hyper-Python的HTTP/2客户端。
py socks——socks的更新和积极维护版本,包括错误修复和一些其他功能。作为插座模块的直接替代品。
网络爬虫框架
功能齐全的爬行动物
grab——网络爬虫框架(基于pycurl/multicur)。
Scrapy网络爬虫框架(基于twisted),不支持Python3。
PySpider一个强大的爬虫系统。
cola——一个分布式爬虫框架。
其他的
Portia——一个基于Scrapy的可视化爬虫。
工具包——Python的HTTP资源工具包。它允许您轻松地访问HTTP资源并围绕它构建对象。
忠诚的口红——基于PyQuery的爬虫微帧。
HTML/XML解析器
被普遍使用
用MLC语言编写高效的HTML/XML处理库。支持XPath。
选择CSS-解析DOM树和CSS选择器。
pyquery——解析DOM树和jQuery选择器。
美汤——低效的HTML/XML处理库,纯Python实现。
HTML lib根据WHATWG规范生成HTML/XML文档的DOM。现在所有的浏览器都使用这个规范。
提要解析器解析RSS/ATOM提要。
标记安全为XML/HTML/XHTML提供安全转义的字符串。
xmlto dict——一个Python模块,在处理XML的时候可以让你觉得是在处理JSON。
XML 2 pdf将HTML/CSS转换为PDF。
解开——轻松地将XML文件转换成Python对象。
清楚的
漂白-清理HTML(需要html5lib)。
sanitize——让混乱的数据世界变得清晰。
一个用于解析和操作简单文本的库。
被普遍使用
difflib-(Python标准库)有助于进行差异化比较。
Levenshtein快速计算Levenshtein距离和Levenshtein。
模糊模糊-模糊字符串匹配。
ESM正则表达式加速器。
FTFY-自动整理Unicode文本以减少碎片。
自然语言处理
处理人类语言问题的图书馆。
NLTK——编写Python程序处理人类语言数据的最佳平台。
模式——Python的网络挖掘模块。他有自然语言处理工具,机器学习等等。
文本blob为深度自然语言处理任务提供一致的API。它是基于NLTK和Pattern在巨人的肩膀上发展起来的。
Jieba中文分词工具。
中文文本处理库。
另一个中文分词库。
浏览器自动化和模拟
selenium——自动化真正的浏览器(Chrome、Firefox、Opera、IE)。
ghost . py——PyQt的webkit封装(PyQt是必需的)。
spynner——封装PyQT的WebKit(PyQT是必需的)。
splinter——通用API浏览器模拟器(selenium web driver,Django client,Zope)。
多重处理
线程化Python标准库的线程化。它对于I/O密集型任务非常有效。这对CPU受限的任务没用,因为python GIL。
多进程——标准Python库运行多个进程。
celery——基于分布式消息传递的异步任务队列/作业队列。
Concurrent-futuresConcurrent-futures模块为调用异步执行提供了一个高级接口。
异步的
异步网络编程库
asyncio ( Python 3.4版以上的Python标准库)异步I/O、时间周期、协作程序和任务。
twid——事件驱动的网络引擎框架。
Tornado一个网络框架和异步网络库。
pulsarPython事件驱动的并发框架。
diesel——Python基于绿色事件的I/O框架。
ge vent——基于使用greenlet的协作的Python web库。
event let——WSGI支持的异步框架。
明天——异步代码的精彩修饰语法。
长队
celery——基于分布式消息传递的异步任务队列/作业队列。
小型多线程任务队列。
MRQ队列先生使用redis Gevent的Python分布式工作任务队列。
RQ-基于Redis的轻量级任务队列管理器。
SimpleQ——一个简单的、无限可扩展的队列,基于亚马逊SQS。
gearman的Python API。
云计算
picloud——云中的Python代码执行。
do minoup . com在云端执行R、Python和matlab代码
网页抽取
选择web内容库。
HTML页面的文本和元数据
Newspaperer使用Python进行新闻提取、文章提取和内容管理。
2 HTML text将HTML转换为Markdown格式的文本。
Python-goose-HTML内容/文章提取器。
lassie——一个人性化的网络内容检索工具
WebSocket
WebSocket的库。
crossbar——一个开源应用程序消息路由器(由Python实现的用于Autobahn的WebSocket和WAMP)。
autobahn Python提供WebSocket协议和WAMP协议的Python实现,并且是开源的。
WebSocket-for-Python——Python 2和3以及PyPy的web socket客户端和服务器库。
dns分析
哟——在全球1500多台DNS服务器上检查您的DNS。
py cares-c-ares的接口。C-ares是一个用于DNS请求和异步名称解析的C语言库。
计算机视觉
opencv——开源计算机视觉库。
简单CV——简单介绍相机、图像处理、特征提取、格式转换和一个可读接口(基于OpenCV)。
maht as——一种快速的计算机图像处理算法(完全用C实现),它完全基于numpy数组作为其数据类型。
代理服务系统
影子袜子-一个快速隧道代理,可以帮助您穿透防火墙(支持TCP和UDP,TFO,多用户和平稳重启,以及目的地IP黑名单)。
T proxyT proxy是一个简单的TCP路由代理(第7层),基于Gevent,用Python配置。
web开发的一些框架
1.姜戈
Django是一个开源的Web应用框架,用Python编写,支持很多数据库引擎。它可以使Web开发变得快速和可扩展,并且会不断更新其版本以匹配Python的最新版本。如果你是程序员新手,可以从这个框架入手。
2.瓶
Flask是一个轻量级的Web应用框架,用Python编写。基于WerkzeugWSGI工具箱和Jinja2模板引擎。使用BSD授权。
Flask又被称为“微框架”,因为它使用了一个简单的核心,并通过扩展添加了其他功能。默认情况下,Flask没有数据库和表单验证工具。但是Flask保留了扩展的灵活性,这些功能可以用Flask-extension添加:ORM、表单验证工具、文件上传、各种开放认证技术。
3.Web2py
Web2py是用Python语言编写的免费开源Web框架,旨在快速快捷地开发Web应用。它具有快速、可扩展、安全和可移植的数据库驱动的应用程序,并遵循LGPLv3开源协议。
Web2py提供了一站式解决方案,整个开发过程都可以在浏览器上进行。提供网页版在线开发、HTML模板编译、静态文件上传、数据库编译等功能。其他包括日志功能和自动化管理界面。
4.龙卷风
Tornado是一个Web服务器(本文不再详细描述),同时也是一个类似于web.py的微框架,作为一个框架,Tornado的思想主要来源于Web.py,你也可以在Web.py的主页上看到Tornado的老板Bret Taylor的这段话(这里提到的FriendFeed使用的框架可以看作是Tornado的一个东西):
“[web.py启发了]我们在FriendFeed使用的web框架[以及App Engine附带的webapp框架……”
因为这个关系,以后就不单独讨论龙卷风了。
5.樱桃派
CherryPy是一个简单且非常有用的Python Web框架。它的主要功能是用尽可能少的操作用Python代码连接Web服务器。其功能包括内置的分析功能、灵活的插件系统和一次运行多个HTTP服务器的功能。可以和最新版本的Python,Jython,Android相提并论。
对框架选择的误解
在框架的选择上,很多人很容易在不知不觉中陷入以下两个误区:哪个框架最好?——世界上没有最好的框架,只有最适合你和你的团队的框架。编程语言选择也是如此。如果您的团队最熟悉Python,请使用Python。如果你最熟悉Ruby,就用Ruby。编程语言和框架只是工具。多做、快做、好做、少做是好事。
过于关注性能——其实大部分人都不需要过于关注框架的性能,因为你开发的网站根本就是一个小站。能接入一万IP的网站不多,能接入十万IP的就更少了。在达到一定访问量之前谈性能没有太大意义,因为你的CPU和内存总是处于闲置状态。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。