Python爬虫常用工具集合一、常用模块requests模块功能:用于网络请求。简介:Requests是用Python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库。Requests比urllib更加方便,可以节约大量时间。替代方案:urllib,urllib2等。pyquery模块功能:用于HTML页面解析。简介:PyQuery库是一个非常强大且灵活的网页解析库,PyQuery是Python仿照jQuery的严格实现,语法与jQuery几乎完全相同。替代方案:beautifulsoup4,lxml等。selenium库功能:模拟浏览器操作,抓取Ajax页面。简介:Selenium是一套完整的Web应用程序测试系统,包含了测试的录制(Selenium IDE)、编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium可以模拟真实浏览器,是自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。替代方案:pyppeteer。celery模块功能:分布式任务调度库。简介:Celery是一个由Python编写的简单、灵活、可靠的分布式系统,用于处理大量信息,同时提供操作和维护分布式系统所需的工具。Celery专注于实时任务处理,支持任务调度。其它常用库json库:用于JSON操作。PIL库:用于图片操作。openpyxl库:用于Excel操作。pymssql库:用于SQL Server数据库操作。MySQLdb库:用于MySQL数据库操作。fake-useragent库:用于头部请求伪装。二、爬虫框架Scrapy功能:为了爬取网站数据,提取结构性数据而编写的应用框架。简介:Scrapy可以应用在包括数据挖掘、信息处理或存储历史数据等一系列的程序中。Scrapy使用Twisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活地完成各种需求。框架结构图:Pyspider功能:强大的网络爬虫系统,带有强大的WebUI。简介:Pyspider采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器、任务监视器、项目管理器以及结果查看器。框架结构图:三、数据库相关Redis数据库功能:基于内存的数据库。简介:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。MongoDB数据库功能:文档型数据库。简介:MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB支持的数据结构非常松散,是类似JSON的bson格式,因此可以存储比较复杂的数据类型。四、消息队列RabbitMQ功能:AMQP的开源实现。简介:RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue)的开源实现。AMQP的出现是为了满足异步消息处理的需求,提供了低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能。Kafka功能:开源流处理平台。简介:Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据。RocketMQ功能:分布式、队列模型的消息中间件。简介:RocketMQ是阿里系下开源的一款分布式消息中间件,原名Metaq,3.0版本名称改为RocketMQ。RocketMQ是阿里参照Kafka设计思想使用Java实现的一套MQ,同时将阿里系内部多款MQ产品(Notify、metaq)进行整合,只维护核心功能,去除了所有其他运行时依赖,保证核心功能最简化。



































