Python 网页抓取
此列表包含与网络抓取和数据处理相关的 Python 库。
网络请求工具
网络请求库:通用
- urllib - 网络库 (stdlib)。
- requests - 几乎是最流行的网络请求库。
- grab - 网络库(基于 pycurl)。
- pycurl - 网络库(基于 libcurl)。
- urllib3 - 具有线程安全连接池、文件发布支持、健全友好等的 Python HTTP 库。
- httplib2 - 小型、快速的 HTTP 客户端库。具有持久连接、缓存和 Google App Engine 支持。
- RoboBrowser - 一个简单的 Pythonic 库,用于在没有独立 Web 浏览器的情况下浏览 Web。
- MechanicalSoup - 用于自动与网站交互的 Python 库。
- mechanize - 有状态的程序化网页浏览。
- socket 底层网络接口 (stdlib)。
- Unirest for Python - Unirest 是一组轻量级的 HTTP 库,支持多种语言。
- hyper - Python 的 HTTP/2 客户端。
- PySocks - 更新和积极维护的 SocksiPy 版本,具有错误修复和额外功能。作为插座模块的直接替代品。
网络请求工具:异步
网络请求工具:底层
- dpkt - 快速、简单的数据包创建/解析,具有基本 TCP/IP 协议的定义。
- pyOpenSSL - 一个围绕 OpenSSL 库的 Python 包装器。
- tlslite-ng - 纯 python 中的 TLS 实现。
- scapy - 强大的基于 Python 的交互式数据包操作程序和库。
- impacket - 对网络协议数据包的低级编程访问。
网页抓取
网页抓取:框架
- grab - 网络抓取框架(基于 pycurl/multicurl)。
- scrapy - 网络抓取框架(基于 Twisted)。
- pyspider - 一个强大的爬取系统。
- cola - 一个分布式爬虫框架。
- ruia - 基于 asyncio 的异步 Python 3.6+网页抓取微框架。
- ioweb - 基于 gevent 和 lxml 的网页抓取框架。
- autoscraper - 一个智能、自动、轻量级的网络爬虫。
- frontera - 一个可扩展的网络爬虫框架。
网页抓取:工具
- portia - Scrapy 的可视化抓取。
- restkit - Python 的 HTTP 资源工具包。它允许您轻松访问 HTTP 资源并围绕它构建对象。
- requests-html - Pythonic HTML Parsing for Humans。
- ScrapydWeb - Scrapyd 集群管理的全功能 Web UI,支持 Scrapy 日志分析&可视化、自动打包、定时任务、邮件通知等。
- Starbelly - Starbelly 是一个用户友好且高度可配置的网络爬虫前端。
- Gerapy - 基于 Scrapy, Scrapyd, Django、Vue.js 的分布式爬虫管理框架。
网页抓取:绕过保护
- cloudscraper - 绕过 Cloudflare 的反机器人页面的 Python 模块。
HTML/XML
HTML/XML:通用
- lxml - 有效的 HTML/XML 处理库,支持 XPATH。
- cssselect - 使用带有 CSS 选择器的 DOM 树。
- pyquery - 使用类 jQuery 选择器的 DOM 树。
- BeautifulSoup - 慢速 HTML/XMl 处理库,纯 Python 编写。
- html5lib - 根据 WHATWG 规范 构建 HTML/XML 文档的 DOM。该规范用于所有现代浏览器。
- feedparser - 解析 RSS/ATOM 提要。
- MarkupSafe - 为 Python 实现 XML/HTML/XHTML 标记安全字符串。
- xmltodict - 使用 XML 感觉就像使用 JSON。
- xhtml2pdf - HTML/CSS 到 PDF 转换器。
- untangle - 将 XML 文档转换为 Python 对象以便于访问。
- hodor - 围绕 lxml 和 cssselect 的配置驱动包装器。
- chopper - 使用相应 CSS 规则从 HTML 页面中提取部分并保留正确 HTML 的工具。
- selectolax - Python 绑定到 Modest 引擎(带有 CSS 选择器的快速 HTML5 解析器)。
- parsel - 允许您使用 XPath 或 CSS 选择器从 XML/HTML 文档中提取数据。
- html5-parser - 用于 python 的基于 C 的快速 HTML5 解析。
- gazpacho - 一个简单、快速、现代的网络抓取库。
HTML/XML:消毒
HTML/XML:元数据
- extruct - 用于从 HTML 标记中提取嵌入元数据的库。
文本处理
用于解析和操作纯文本的库。
文本处理:通用
- difflib - (Python 标准库)计算增量的助手。
- Levenshtein - 快速计算 Levenshtein 距离和字符串相似度。
- fuzzywuzzy - 模糊字符串匹配。
- esmre - 正则表达式加速器。
- ftfy - 自动减少 Unicode 文本的损坏和更一致。
文本处理:音译
- unidecode - Unicode 文本的 ASCII 音译库。
文本处理:字符编码
- uniout - 打印可读字符而不是转义字符串。
- chardet - Python 2/3 兼容的字符编码检测器。
- xpinyin - 一个将汉字(汉字)翻译成拼音(拼音)的库。
- pangu.py - CJK 和字母数字的间距文本。
- cchardet - cChardet 是高速通用字符编码检测器,绑定到 uchardet。
文本处理:Slugify
- awesome-slugify - 一个可以保存 unicode 的 Python slugify 库。
- python-slugify - 一个将 unicode 转换为 ASCII 的 Python slugify 库。
- unicode-slugify - 生成 unicode slug 的 slugifier。
- pytils - 处理俄语字符串的简单工具(包括 pytils.translit.slugify)。
文本处理:通用解析器
文本处理:人名
- python-nameparser - 将人名解析成各自的组成部分。
文本处理:电话号码
- 电话号码 - 解析、格式化、存储和验证国际电话号码。
文本处理:用户代理字符串
- HTTP 代理解析器 - Python HTTP 代理解析器。
- uap-python - ua-parser 的 Python 实现。
- python-user-agents - 浏览器用户代理解析器。
- fake-useragent - Python 用户代理字符串伪造者,基于浏览器的世界统计数据。
- user_agent - 用户代理数据生成器。
文本处理:robots.txt
- reppy - 适用于 Python 的现代 robots.txt 解析器。
文本处理:日期和时间
- dateutil - 对标准 Python 日期时间功能的有用扩展。
- dateparser - 用于人类可读日期的 python 解析器。
- ciso8601 - 将 ISO 8601 或 RFC 3339 日期时间字符串转换为 Python 日期时间对象。
文本处理: 价格和货币
- price-parser - 一个用于从原始文本字符串中提取价格和货币的小型库。
结构化格式
用于解析和操作特定文本格式的库。
结构化格式:通用
- tablib - XLS、CSV、JSON、YAML 格式的表格数据集模块。
- texttract - 从任何文档、Word、PowerPoint、PDF 等中提取文本。
- messytables - 解析杂乱表格数据的工具。
- rows - 一个通用的、漂亮的表格数据界面,无论格式如何(目前是 CSV、HTML、XLS、TXT)。
结构化格式:Office
- python-docx - 读取、查询和修改 Microsoft Word 2007/2008 docx 文件。
- xlwt / xlrd - 从 Excel 文件中写入和读取数据以及格式化信息。
- XlsxWriter - 用于创建 Excel .xlsx 文件的 Python 模块。
- xlwings - 一个 BSD 许可的库,可以轻松地从 Excel 调用 Python,反之亦然。
- openpyxl - 用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。
- Marmir - 采用 Python 数据结构并将它们转换为电子表格。
结构化格式:PDF
- PDFMiner - 从 PDF 文档中提取信息的工具。
- PyPDF2 - 一个能够拆分、合并和转换 PDF 页面的库。
- ReportLab - 允许快速创建丰富的 PDF 文档。
- pdftables - 直接从 PDF 文件中提取表格
结构化格式:Markdown
- Python-Markdown - John Gruber 的 Markdown 的 Python 实现。
- Mistune - 最快且功能齐全的 Markdown 纯 Python 解析器。
- markdown2 - Markdown 的快速且完整的 Python 实现。
- mistletoe - 在纯 Python 中快速、可扩展且符合规范的 Markdown 解析器。
结构化格式:YAML
- PyYAML - Python 的 YAML 实现。
结构化格式:CSS
- cssutils - Python 的 CSS 库。
结构化格式:ATOM/RSS
- feedparser - 通用提要解析器。
结构化格式:SQL
- sqlparse - 一个非验证 SQL 解析器。
结构化格式:HTTP
- http-parser - C 中 python 的 HTTP 请求/响应解析器。
- httptools - Node.js HTTP 解析器的 Python 绑定。
结构化格式:微格式
- opengraph - 解析开放图协议标签的 Python 模块。
结构化格式:可移植的可执行文件
- pefile - 一个多平台模块,用于解析和使用可移植可执行文件(又名 PE)文件。
结构化格式:PSD
- psd-tools - 读取 Adobe Photoshop PSD 文件(如 规范 中所述/fileformatashtml/PhotoshopFileFormats.htm)) 到 Python 数据结构。
结构化格式:书签文件
- bookmarks-parser - 解析 Firefox/Chrome HTML 书签文件。
序列化
自然语言处理
用于处理人类语言的库。
- NLTK - 用于构建 Python 程序以处理人类语言数据的领先平台。
- spacy - 允许使用最先进的深度学习模型来完成常见的 NLP 任务。
- fastai - 带有免费视频教程 + 活跃论坛社区的深度学习库,lib 的缺点:需要 GPU。
- gensim - 用于主题建模、文档索引和大型语料库相似性检索的库。
- Pattern - Python 的网络挖掘模块。它具有用于自然语言处理、机器学习等的工具。
- TextBlob - 为深入研究常见的 NLP 任务提供一致的 API。站在 NLTK 和 Pattern 的巨大肩膀上。
- jieba - 中文分词工具。
- SnowNLP - 处理中文文本的库。
- loso - 另一个中文分词库。
- genius - 基于条件随机场的中文片段。
- langid.py - 独立的语言识别系统。
- 韩语 - 韩语 形态学库。
- pymorphy2 - 俄语的形态分析器(POS 标记器 + 转换引擎)。
- PyPLN - 用于自然语言处理的分布式管道,用 Python 制作。该项目的目标是创建一种使用 NLTK 处理大型语料库的简单方法,并带有 Web 界面。
- langdetect - Google 语言检测库到 Python 的端口。
浏览器自动化
浏览器自动化:浏览器
- selenium - 自动化真实浏览器(Chrome、Firefox、Opera、IE)。
- Ghost.py - QtWebKit 的包装器(需要 PyQT)。
- Spynner - QtWebKit QtWebKit 的包装器(需要 PyQT)。
- Splinter - 浏览器模拟器的通用 API (selenium webdrivers, django client, zope)。
- Requestium - Requests 和 Selenium 之间的集成层,用于 Web 操作的自动化。
- Splash - 具有 HTTP API 的轻量级、可编写脚本的浏览器即服务。
- pyppeteer - 无头 chrome/chromium 自动化库(puppeteer 的非官方端口)。
- Playwright - Playwright 是一个 Python 库,可通过单个 API 自动化 Chromium、Firefox 和 WebKit 浏览器。
- seleniumbase - 用于 Web/UI 测试 + RPA 的 Python 框架。
评论 (0)