python爬虫技术点及常用工具库导航

哈根达斯
2022-04-26 / 0 评论 / 340 阅读 / 正在检测是否收录...

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 版本,具有错误修复和额外功能。作为插座模块的直接替代品。

网络请求工具:异步

  • treq - API 之类的请求。
  • aiohttp - asyncio 的 http 客户端/服务器 (PEP-3156)。

网络请求工具:底层

  • 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:消毒

  • Bleach - HTML 的清理(需要 html5lib)。
  • sanitize - 为混乱的数据世界带来理智。

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)。

文本处理:通用解析器

  • PLY - 用于 Python 的 lex 和 yacc 解析工具的实现。
  • pyparsing - 用于生成解析器的通用框架。

文本处理:人名

文本处理:电话号码

  • 电话号码 - 解析、格式化、存储和验证国际电话号码。

文本处理:用户代理字符串

文本处理: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

结构化格式:ATOM/RSS

结构化格式:SQL

  • sqlparse - 一个非验证 SQL 解析器。

结构化格式:HTTP

  • http-parser - C 中 python 的 HTTP 请求/响应解析器。
  • httptools - Node.js HTTP 解析器的 Python 绑定。

结构化格式:微格式

  • opengraph - 解析开放图协议标签的 Python 模块。

结构化格式:可移植的可执行文件

  • pefile - 一个多平台模块,用于解析和使用可移植可执行文件(又名 PE)文件。

结构化格式:PSD

  • psd-tools - 读取 Adob​​e Photoshop PSD 文件(如 规范 中所述/fileformatashtml/PhotoshopFileFormats.htm)) 到 Python 数据结构。

结构化格式:书签文件

序列化

  • orjson - 支持数据类和日期时间的快速、正确的 Python JSON 库。
  • ujson - 用 C 语言编写的超快速 JSON 解码器和编码器,带有 Python 绑定。

自然语言处理

用于处理人类语言的库。

  • 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

评论 (0)

取消