关于爬虫的一些工具。

网络

  • 通用

    • urllib -网络库(stdlib)。
    • requests -网络库。
    • grab – 网络库(基于pycurl)。
    • pycurl – 网络库(绑定libcurl)。
    • urllib3 – Python HTTP库,安全连接池、支持文件post、可用性高。
    • httplib2 – 网络库。
    • RoboBrowser – 一个简单的、极具Python风格的Python库,无需独立的浏览器即可浏览网页。
    • MechanicalSoup -一个与网站自动交互Python库。
    • mechanize -有状态、可编程的Web浏览库。
    • socket – 底层网络接口(stdlib)。
    • Unirest for Python – Unirest是一套可用于多种语言的轻量级的HTTP库。
    • hyper – Python的HTTP/2客户端。
    • PySocks – SocksiPy更新并积极维护的版本,包括错误修复和一些其他的特征。作为socket模块的直接替换。
  • 异步
    • treq – 类似于requests的API(基于twisted)。
    • aiohttp – asyncio的HTTP客户端/服务器(PEP-3156)。

网络爬虫框架

  • 功能齐全的爬虫

    • grab – 网络爬虫框架(基于pycurl/multicur)。
    • scrapy – 网络爬虫框架(基于twisted),不支持Python3。
    • pyspider – 一个强大的爬虫系统。
    • cola – 一个分布式爬虫框架。
  • 其他
    • portia – 基于Scrapy的可视化爬虫。
    • restkit – Python的HTTP资源工具包。它可以让你轻松地访问HTTP资源,并围绕它建立的对象。
    • demiurge – 基于PyQuery的爬虫微框架。

HTML/XML解析器

  • 通用

    • lxml – C语言编写高效HTML/ XML处理库。支持XPath。
    • cssselect – 解析DOM树和CSS选择器。
    • pyquery – 解析DOM树和jQuery选择器。
    • BeautifulSoup – 低效HTML/ XML处理库,纯Python实现。
    • html5lib – 根据WHATWG规范生成HTML/ XML文档的DOM。该规范被用在现在所有的浏览器上。
    • feedparser – 解析RSS/ATOM feeds。
    • MarkupSafe – 为XML/HTML/XHTML提供了安全转义的字符串。
    • xmltodict – 一个可以让你在处理XML时感觉像在处理JSON一样的Python模块。
    • xhtml2pdf – 将HTML/CSS转换为PDF。
    • untangle – 轻松实现将XML文件转换为Python对象。
  • 清理
    • Bleach – 清理HTML(需要html5lib)。
    • sanitize – 为混乱的数据世界带来清明。

文本处理

用于解析和操作简单文本的库。

  • 通用
    • difflib – (Python标准库)帮助进行差异化比较。
    • Levenshtein – 快速计算Levenshtein距离和字符串相似度。
    • fuzzywuzzy – 模糊字符串匹配。
    • esmre – 正则表达式加速器。
    • ftfy – 自动整理Unicode文本,减少碎片化。
  • 转换
    • unidecode – 将Unicode文本转为ASCII。
  • 字符编码
    • uniout – 打印可读字符,而不是被转义的字符串。
    • chardet – 兼容 Python的2/3的字符编码器。
    • xpinyin – 一个将中国汉字转为拼音的库。
    • pangu.py – 格式化文本中CJK和字母数字的间距。
  • Slug化
    • awesome-slugify – 一个可以保留unicode的Python slugify库。
    • python-slugify – 一个可以将Unicode转为ASCII的Python slugify库。
    • unicode-slugify – 一个可以将生成Unicode slugs的工具。
    • pytils – 处理俄语字符串的简单工具(包括pytils.translit.slugify)。
  • 通用解析器
    • PLY – lex和yacc解析工具的Python实现。
    • pyparsing – 一个通用框架的生成语法分析器。
  • 人的名字
  • 电话号码
    • phonenumbers -解析,格式化,存储和验证国际电话号码。
  • 用户代理字符串

特定格式文件处理

解析和处理特定文本格式的库。

  • 通用
    • tablib – 一个把数据导出为XLS、CSV、JSON、YAML等格式的模块。
    • textract – 从各种文件中提取文本,比如 Word、PowerPoint、PDF等。
    • messytables – 解析混乱的表格数据的工具。
    • rows – 一个常用数据接口,支持的格式很多(目前支持CSV,HTML,XLS,TXT – 将来还会提供更多!)。
  • Office
    • python-docx – 读取,查询和修改的Microsoft Word2007/2008的docx文件。
    • xlwt / xlrd – 从Excel文件读取写入数据和格式信息。
    • XlsxWriter – 一个创建Excel.xlsx文件的Python模块。
    • xlwings – 一个BSD许可的库,可以很容易地在Excel中调用Python,反之亦然。
    • openpyxl – 一个用于读取和写入的Excel2010 XLSX/ 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解析器。
  • CSS
    • cssutils – 一个Python的CSS库。
  • ATOM/RSS
  • SQL
    • sqlparse – 一个非验证的SQL语句分析器。
  • HTTP
  • HTTP
    • http-parser – C语言实现的HTTP请求/响应消息解析器。
  • 微格式
    • opengraph – 一个用来解析Open Graph协议标签的Python模块。
  • 可移植的执行体
    • pefile – 一个多平台的用于解析和处理可移植执行体(即PE)文件的模块。
  • PSD
    • psd-tools – 将Adobe Photoshop PSD(即PE)文件读取到Python数据结构。

自然语言处理

处理人类语言问题的库。

  • NLTK -编写Python程序来处理人类语言数据的最好平台。
  • Pattern – Python的网络挖掘模块。他有自然语言处理工具,机器学习以及其它。
  • TextBlob – 为深入自然语言处理任务提供了一致的API。是基于NLTK以及Pattern的巨人之肩上发展的。
  • jieba – 中文分词工具。
  • SnowNLP – 中文文本处理库。
  • loso – 另一个中文分词库。
  • genius – 基于条件随机域的中文分词。
  • langid.py – 独立的语言识别系统。
  • Korean – 一个韩文形态库。
  • pymorphy2 – 俄语形态分析器(词性标注+词形变化引擎)。
  • PyPLN  – 用Python编写的分布式自然语言处理通道。这个项目的目标是创建一种简单的方法使用NLTK通过网络接口处理大语言库。

浏览器自动化与仿真

  • selenium – 自动化真正的浏览器(Chrome浏览器,火狐浏览器,Opera浏览器,IE浏览器)。
  • Ghost.py – 对PyQt的webkit的封装(需要PyQT)。
  • Spynner – 对PyQt的webkit的封装(需要PyQT)。
  • Splinter – 通用API浏览器模拟器(selenium web驱动,Django客户端,Zope)。

多重处理

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

异步

异步网络编程库

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

队列

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

云计算

  • picloud – 云端执行Python代码。
  • dominoup.com – 云端执行R,Python和matlab代码。

电子邮件

电子邮件解析库

  • flanker – 电子邮件地址和Mime解析库。
  • Talon – Mailgun库用于提取消息的报价和签名。

网址和网络地址操作

解析/修改网址和网络地址库。

  • 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为所有类似的网页构建一个分析器。
  • 视频

    • youtube-dl – 一个从YouTube下载视频的小命令行程序。
    • you-get – Python3的YouTube、优酷/ Niconico视频下载器。
  • 维基

    • WikiTeam – 下载和保存wikis的工具。

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 – c-ares的接口。c-ares是进行DNS请求和异步名称决议的C语言库。

计算机视觉

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

代理服务器

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

其他Python工具列表

时间: 2024-11-08 23:28:58

关于爬虫的一些工具。的相关文章

爬虫推荐的工具

爬虫推荐的工具:pyspider,BeautifulSouprequestsscrapymongodbrediskafka.repyV8:python执行js的插件phatomjs:一个无界面的,可脚本编程的WebKit浏览器引擎.它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVGselenium:是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样. 一开始推荐学习框架,比如scrapy或者Pyspider

python爬虫scrapy命令工具学习之篇三

命令行工具(Command line tools) 全局命令 startproject settings runspider shell fetch view version 项目命令 crawl check list edit parse genspider deploy bench 1.创建爬虫工程的命令 scrapy startproject myproject 2.控制项目创建一个spider scrapy genspider mydomain mydomain.com 3.使用爬虫进行

爬虫的一些工具(二)

1. 常有的工具  (1). python  (2). pycharm (3).浏览器 i.chrome   ii.火狐 (4).fiddler的使用 2 fiddler的使用 (1).操作界面 (2)界面含义    请求(Request)部分详解 名称 含义 Headers 显示客户端发送到服务器的 HTTP 请求的,header 显示为一个分级视图,包含了 Web 客户端信息.Cookie.传输状态等 Textview 显示 POST 请求的 body 部分为文本 WebForms 显示请求

十大抢手的网站压力测试工具

两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能.我相信,北京奥组委的订票网站的开发团队并不知道有这样的测试工具. Grinder –  Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利. 支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行

[网站安全] 十大抢手的网站压力测试工具

参考:http://www.oschina.net/news/30374/10-free-tools-to-loadstress-test-your-web?from=rss 两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能.我相信,北京奥组委的订票网站的开发团队并不知道有这样的测试工具. Grinder 

十个免费的Web压力测试工具

两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能.我相信,北京奥组委的订票网站的开发团队并不知道有这样的测试工具. Grinder –  Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利. 支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行

Atitit.数据检索与网络爬虫与数据采集的原理概论

1. 信息检索1 1.1. <信息检索导论>((美)曼宁...)[简介_书评_在线阅读] - dangdang.html1 1.2. <现代信息检索(原书第2版)(由信息检索领域的代表人物撰写,及时掌握现代信息检索关键主题的详细知识)>((智)贝泽耶茨...)2 2. 网络爬虫2 2.1. 第8章 web爬取1993 2.2. <用Python写网络爬虫>([澳]理查德...)3 3. 数据采集4 3.1. <Python网络数据采集>(...)[简介_书评

一个js爬虫

1. 第一个demo 2. configs详解——之成员 3. configs详解——之field 4. configs详解——之site, page和console 5. configs详解——之回调函数 6. 爬虫进阶开发——之内置函数 7. 爬虫进阶开发——之模板化 8. 爬虫进阶开发——之图片云托管 9. 爬虫进阶开发——之自动IP代理 10. 爬虫进阶开发——之验证码识别 11. 爬虫进阶开发——之自动JS渲染 12. 爬虫进阶开发——之技巧篇 13. 两个完整demo 14. 开发神

【转】十大抢手的网站压力测试工具

两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能.我相信,北京奥组委的订票网站的开发团队并不知道有这样的测试工具. Grinder –  Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利. 支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行