网络爬虫
网络请求
requests: Requests allows you to send HTTP/1.1 requests extremely easily. 一个处理http请求的客户端库,比urllib使用方便。
selenium The selenium package is used to automate web browser interaction from Python. 可以驱动浏览器执行特定的动作,如点击、下拉等操作,对于一些用JS做谊染的页面来说,这种抓取方式是非常有效的。
scrapyScrapy is a fast high-level web crawling and web scraping framework, used to crawl websites and extract structured data from their pages. Scrapy 算得上是Python世界中最常用的爬虫框架了,一般工程化使用该框架。
网页解析
Beautiful soup Beautiful Soup is a library that makes it easy to scrape information from web pages. It sits atop an HTML or XML parser, providing Pythonic idioms for iterating, searching, and modifying the parse tree. HTML或XMl的解析库,它可以很方便的解析网页中提取数据,拥有强大的API和多种解析方式。
parsel Parsel is a BSD-licensed Python library to extract and remove data from HTML and XML using XPath and CSS selectors, optionally combined with regular expressions. parsel 是scrapy出品的库,用于网页内容解析。
[scrapy的selector] scrapy selector也是一个网页数据解析器,基于parsel封装,简单、直接、高效。
机器学习库
scikit learn scikit-learn is a Python module for machine learning built on top of SciPy and is distributed under the 3-Clause BSD license. 一个机器学习库,常用的机器学习算法都包含在内,按照分类、回归、聚类等组织,每一块有对应的多种算法实现。
pytorch An open source machine learning framework that accelerates the path from research prototyping to production deployment. Facebook开源的深度学习框架,不需要定义计算图,在科研领域使用较多,逐渐过渡到工程领域,对标tensorflow。
tensorflow TensorFlow is an open source software library for high performance numerical computation. Its flexible architecture allows easy deployment of computation across a variety of platforms (CPUs, GPUs, TPUs), and from desktops to clusters of servers to mobile and edge devices. Google开源的深度学习框架,1.x版本需要用户定义计算图,目前主推2.x版本,使用eager模式,自动生成计算图。工业领域应用广泛。
图像处理
opencv-python python包装的opencv库,相较于C++,更易使用,可方面的基于opencv,探索图像方面的知识,具体到工程化可能还需要转成C++的方式调用。
[scikit-image]Image processing in Python (https://pypi.org/project/scikit-image/) Python中的PIL和Pillow只提供最基础的数字图像处理,opencv-python是对opencv的封装。, 而sciki-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理。
web框架
Flask Flask is a lightweight WSGI web application framework. python的一个轻量级web框架。
DjangoDjango is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. python世界中一个比较完善的web框架。
自动化运维
psutil psutil (process and system utilities) is a cross-platform library for retrieving information on running processes and system utilization (CPU, memory, disks, network, sensors) in Python. It is useful mainly for system monitoring, profiling and limiting process resources and management of running processes. 可以获取系统性能信息、内存信息、磁盘信息、网络信息、用户信息等。
IPy IPy - class and tools for handling of IPv4 and IPv6 addresses and networks. 可以计算诸如网段、子网掩码、广播地址、子网数。还可以判断IP网段的包含关系和对多个IP地址段进行汇总等等。
dnspython A DNS toolkit for python 实现dns服务监控以及解析结果的校验,替代nslookup及dig等工具。
python3-nmapA python 3 library which helps in using nmap port scanner.端口扫描工具。
pyclamd pyClamd is a python interface to Clamd (Clamav daemon).一个Python第三方模块,可让Python直接使用ClamAV病毒扫描守护进程clamd,来实现一个高效的病毒检测功能,另外,PyClamad模块也非常容易整合到已有的平台当中。
paramiko This is a library for making SSH2 connections (client or server). paramiko是基于python实现的ssh2远程安全连接,支持认证及密钥方式,可以实现远程命令执行,文件传输、中间ssh代理等功能。
FabricFabric is a high level Python (2.7, 3.4+) library designed to execute shell commands remotely over SSH, yielding useful Python objects in return. Fabric是基于paramiko的基础上做了一层更高的封装,操作起来更加方便。
AnsibleAnsible is a radically simple IT automation system. Ansible一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台。Ansible提供了一个在线Playbook分享平台,汇聚了各类常用功能的角色。
自动化测试
SeleniumWebUI自动化测试。同上。
Pytest The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries. python测试框架。
UnitTest/PyUnit the standard unit testing framework for Pytho,受到了JUnit启发的UnitTest/PyUnit,也是一种标准化的针对单元测试的Python类自动化测试框架。
应用程序守护
supervisor Supervisor is a client/server system that allows its users to control a number of processes on UNIX-like operating systems. 可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
图表绘制
Matplotlib Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.
pyecharts Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
参考