156个Python网络爬虫资源,GitHub上awesome系列之Python爬虫工具

本文涉及的产品
云解析 DNS,旗舰版 1个月
NLP自然语言处理_基础版,每接口每天50万次
全局流量管理 GTM,标准版 1个月
简介: 项目地址:lorien/awesome-web-scraping,GitHub上awesome系列之Python的爬虫工具。本列表包含Python网页抓取和数据处理相关的库。


项目地址:lorien/awesome-web-scraping

GitHub上awesome系列之Python的爬虫工具。

本列表包含Python网页抓取和数据处理相关的库。

网络相关

  • 通用
    • urllib - 网络库(标准库)
    • requests - 网络库
    • grab - 网络库(基于pycurl)
    • pycurl - 网络库 (与libcurl绑定)
    • urllib3 - 具有线程安全连接池、文件psot支持、高可用的Python HTTP库
    • httplib2 - 网络库
    • RoboBrowser - 一个无需独立浏览器即可访问网页的简单、pythonic的库
    • MechanicalSoup - 能完成自动网站交互的Python库
    • mechanize - 有状态、可编程的网页浏览库。
    • socket - 底层网络接口(标准库)
    • Unirest for Python - 一套支持多种语言的轻量级HTTP库
    • hyper - Python HTTP/2客户端
    • PySocks - SocksiPy持续更新并维护的版本,指出bug修复和一些其他功能,可以作为socket模块的替代品
  • 异步
    • treq - 基于twisted、与requests类似的API
    • aiohttp - asyncio的HTTP客户端/服务器 (PEP-3156)

网络爬虫框架

  • 全能型爬虫
    • grab - 网络爬虫框架(基于pycurl/multicurl)
    • scrapy - 网络爬虫框架(基于twisted)
    • pyspider - 一个强力的爬虫系统
    • cola - 一个分布式爬虫框架
  • 其他
    • portia - 基于Scrapy的可视化爬虫
    • restkit - Python的HTTP资源库。允许影虎简单的访问HTTP资源并用来创建项目
    • demiurge - 基于PyQuery的微型爬虫框架

HTML/XML解析

  • 通用
    • lxml - 高效的HTML/XML处理库。支持XPATH,用C语言写成
    • cssselect - 解析DOM树和css选择器
    • pyquery - 解析DOM树和jQuery选择器
    • BeautifulSoup - Python写成的低效HTML/XMl处理库
    • html5lib - 根据WHATWG规范生成HTML/ XML文档的DOM。WHATWG规范是现在浏览器的通行规范
    • feedparser - 解析RSS/ATOM信息流
    • MarkupSafe - Python的XML/HTML/XHTML安全转义字符串工具
    • xmltodict - 让你处理XML如同处理JSON一样
    • xhtml2pdf - HTML/CSS to PDF转化器
    • untangle - 讲XML文档转化为Python项目以简化处理难度
    • hodor - 支持lxml and cssselect的配置驱动包装工具
  • 清理
    • Bleach - 清理HTML (需求html5lib)
    • sanitize - 将混乱的数据世界恢复清楚

文本处理

解析及操作文本的库

  • 通用
    • difflib - 差异化计算工具(Python标准库)
    • Levenshtein - 快速计算编辑距离及字符串相似度
    • fuzzywuzzy - 模糊字符串比匹配
    • esmre - 正则表达式加速器.
    • ftfy - 将Unicode文本自动整理减少碎片化
  • 转换
  • 字符编码
    • uniout - 将转移字符串输出为可读形式
    • chardet - Python 2/3兼容字符编码检测器
    • xpinyin - 讲汉字转为拼音的库
    • pangu.py - CJK及字母数字文本间距格式化
  • 通用解析器
    • PLY - Python lex和yacc解析工具
    • pyparsing - 用于生成解析器的通用框架
  • 电话号码
    • phonenumbers - 处理、格式化、存储、验证全球电话号码

特殊格式处理

处理特编辑特殊字符格式的库

  • 通用
    • tablib - 处理XLS, CSV, JSON, YAML等表格数据的库
    • textract - 从任何文档中提取文本,支持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 2010xlsx/xlsm/xltx/xltm文件的库
    • Marmir - 提取Python数据结构并将其转化为表格的库
  • PDF
    • PDFMiner - 从PDF文档中提取信息的工具
    • PyPDF2 - 一个分割、合并、转换PDF文件的库
    • ReportLab - 可以快速创建大量PDF文档
    • pdftables - 从PDF文件中精准提取表格
  • Markdown
    • Python-Markdown - 一个用Python实现的John Gruber的Markdown
    • Mistune - 速度最快,功能全面的Markdown纯Python解析器
    • markdown2 - 一个完全用Python实现的快速的Markdown
  • YAML
    • PyYAML - 一个Python的YAML解析器
  • SQL
    • sqlparse - 一个无验证的SQL语句分析器
  • HTTP
    • http-parser - C语言实现的HTTP请求/响应消息解析器
  • Microformats
    • opengraph - 一个用来解析Open Graph协议标签的Python模块
  • 可移植的执行体
  • pefile - 一个多平台的用于解析和处理可移植执行体(即PE)文件的模块
  • PSD
    • psd-tools - 将Adobe Photoshop PSD(即PE)文件读取到Python数据结构

自然语言处理

自然语言处理库

  • NLTK - Python自然语言处理领先者
  • Pattern - Python的网络挖掘模块。他有自然语言处理工具,机器学习以及其它
  • TextBlob - 为深入处理自然语言的项目提供API,参考了NLTK及其他
  • jieba - 中文分词
  • SnowNLP - 汉字文本处理库
  • loso - 中文分词库
  • genius -基于条件随机域的中文分词
  • langid.py - 独立的语言识别系统
  • Korean - 韩文形态库
  • pymorphy2 - 俄语形态分析器(词性标注+词形变化引擎)
  • PyPLN - 用Python编写的分布式自然语言处理通道。这个项目的目标是创建一种简单的方法使用NLTK通过网络接口处理大语言库
  • langdetect - Python的谷歌语言检测库端口

浏览器自动化与仿真

  • 浏览器
    • selenium - 自动化真实浏览器(Chrome, Firefox, Opera, IE)
    • Ghost.py - QtWebKit封装(需求PyQT)
    • Spynner - 具备AJAX支持的程序化网页浏览模块
    • Splinter - 通用API浏览器模拟器(selenium web驱动,Django客户端,Zope)
  • Headless工具
    • xvfbwrapper - 用于在X虚拟帧缓冲区(Xvfb)中运行显示的Python包装器

多进程并发

  • threading - Python标准库的多线程运行。因为python GIL限制,对于I/O密集型任务很有效,对于CPU绑定的任务没用
  • multiprocessing - 多进程标准库
  • celery - 基于分布式消息传递的异步任务队列/作业队列
  • concurrent-futures - concurrent.futures模块提供用于异步执行callable的高级接口

异步

异步网络编程库

  • asyncio - 异步I/O,时间循环,协同程序和任务(Python 3.4以上版本的Python标准库)
  • Twisted - 基于事件驱动的网络引擎框架
  • Tornado - 一个Web框架及异步网络库
  • pulsar - Python事件驱动的并发框架
  • diesel - Python的基于Greenlet的I/O框架
  • gevent - 一个基于协同程序的Python网络库,使用greenlet
  • eventlet - 有WSGI支持的异步框架
  • Tomorrow - 异步代码的魔法

队列

  • celery - 基于分布式消息传递的异步任务队列/作业队列
  • huey - 小型多线程任务队列
  • mrq - Mr. Queue - 使用redis & Gevent 的Python分布式工作任务队列
  • RQ - 基于Redis的轻量级任务队列管理器
  • simpleq - 一个简单的,可无限扩展,基于Amazon SQS的队列
  • python-gearman - Gearman的Python API

云计算

电子邮件

电子邮件处理库

  • flanker - 电子邮件及MIME处理库
  • Talon - Mailgun库用于提取消息的报价和签名

URL和网络地址操作

URL和网络地址操作库

  • URL
    • furl - 一个小的Python库,使得操纵URL简单化
    • purl - 一个简单的不可改变的URL以及一个干净的用于调试和操作的API
    • urllib.parse - 用于打破统一资源定位器(URL)的字符串在组件(寻址方案,网络位置,路径等)之间的隔断,为了结合组件到一个URL字符串,并将“相对URL”转化为一个绝对URL,称之为“基本URL”(标准库)
    • tldextract - 使用公共后缀列表从URL的注册域和子域中准确分离TLD
  • 网络地址
    • netaddr - 用于显示和操纵网络地址的Python库

网页内容提取

网页内容提取库

  • HTML页面的文本和元数据
    • newspaper - 用Python进行新闻提取、文章提取和内容策展
    • html2text - 将HTML转为Markdown格式文本
    • python-goose - HTML内容/文章提取器
    • lassie - 人性化的网页内容检索工具
    • micawber - 一个从网址中提取丰富内容的小型库
    • sumy -一个自动汇总文本文件和HTML网页的模块
    • Haul - 一个可扩展的图像爬虫
    • python-readability - arc90 readability工具的快速Python接口
    • scrapely - 从HTML网页中提取结构化数据的库。给出了一些Web页面和数据提取的示例,scrapely为所有类似的网页构建一个分析器
    • libextract - 从网站提取数据
  • 视频
    • youtube-dl - 一个从YouTube下载视频的小型命令行工具
    • you-get - Python3写成的YouTube/Youku/Niconico视频下载工具
  • Wiki
    • WikiTeam - 下载并保存wkiks的工具

WebSocket

用于WebSocket的库

  • Crossbar - 开源的应用消息传递路由器(Python实现的用于Autobahn的WebSocket和WAMP)
  • AutobahnPython - 提供了WebSocket协议和WAMP协议的Python实现并且开源
  • WebSocket-for-Python - Python 2和3以及PyPy的WebSocket客户端和服务器库

DNS解析

  • dnsyo - 在全球超过1500个的DNS服务器上检查你的DNS
  • pycares - ic-ares的接口。c-ares是进行DNS请求和异步名称决议的C语言库

计算机视觉

  • OpenCV - 开源计算机视觉库
  • SimpleCV - 用于照相机、图像处理、特征提取、格式转换的简介,可读性强的接口(基于OpenCV)
  • mahotas - 快速计算机图像处理算法(完全使用 C++ 实现),完全基于 numpy 的数组作为它的数据类型

代理服务器

  • shadowsocks - 一个快速隧道代理,可帮你穿透防火墙(支持TCP和UDP,TFO,多用户和平滑重启,目的IP黑名单)
  • tproxy - tproxy是一个简单的TCP路由代理(第7层),基于Gevent,用Python进行配置

杂项

  • user_agent - 此模块用于生成随机,有效的Web导航器的配置和用户代理HTTP header

其他

微信图片_20180125161136.png

更多文章:SDK.cn

目录
相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
118 55
|
1月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
165 7
|
1月前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
1月前
|
Python
Python中的异步编程:使用asyncio和aiohttp实现高效网络请求
【10月更文挑战第34天】在Python的世界里,异步编程是提高效率的利器。本文将带你了解如何使用asyncio和aiohttp库来编写高效的网络请求代码。我们将通过一个简单的示例来展示如何利用这些工具来并发地处理多个网络请求,从而提高程序的整体性能。准备好让你的Python代码飞起来吧!
75 2
|
17天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
99 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
29天前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
68 32
|
15天前
|
数据可视化 编译器 Python
Manim:数学可视化的强大工具 | python小知识
Manim(Manim Community Edition)是由3Blue1Brown的Grant Sanderson开发的数学动画引擎,专为数学和科学可视化设计。它结合了Python的灵活性与LaTeX的精确性,支持多领域的内容展示,能生成清晰、精确的数学动画,广泛应用于教育视频制作。安装简单,入门容易,适合教育工作者和编程爱好者使用。
77 7
|
17天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
43 3
|
22天前
|
网络安全 Python
Python网络编程小示例:生成CIDR表示的IP地址范围
本文介绍了如何使用Python生成CIDR表示的IP地址范围,通过解析CIDR字符串,将其转换为二进制形式,应用子网掩码,最终生成该CIDR块内所有可用的IP地址列表。示例代码利用了Python的`ipaddress`模块,展示了从指定CIDR表达式中提取所有IP地址的过程。
36 6
|
25天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
48 8
下一篇
DataWorks