A. python中的爬虫框架有哪些呢
实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实现你想要的功能。更重要的,Python也是数据挖掘和分析的好能手。那么,Python爬虫一般用什么框架比较好?
一般来讲,只有在遇到比较大型的需求时,才会使用Python爬虫框架。这样的做的主要目的,是为了方便管理以及扩展。本文我将向大家推荐十个Python爬虫框架。
1、Scrapy:Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。它是很强大的爬虫框架,可以满足简单的页面爬取,比如可以明确获知url pattern的情况。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。它的特性有:HTML, XML源数据 选择及提取 的内置支持;提供了一系列在spider之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。
2、Crawley:高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等。
3、Portia:是一个开源可视化爬虫工具,可让使用者在不需要任何编程知识的情况下爬取网站!简单地注释自己感兴趣的页面,Portia将创建一个蜘蛛来从类似的页面提取数据。简单来讲,它是基于scrapy内核;可视化爬取内容,不需要任何开发专业知识;动态匹配相同模板的内容。
4、newspaper:可以用来提取新闻、文章和内容分析。使用多线程,支持10多种语言等。作者从requests库的简洁与强大得到灵感,使用Python开发的可用于提取文章内容的程序。支持10多种语言并且所有的都是unicode编码。
5、Python-goose:Java写的文章提取工具。Python-goose框架可提取的信息包括:文章主体内容、文章主要图片、文章中嵌入的任何Youtube/Vimeo视频、元描述、元标签。
6、Beautiful Soup:名气大,整合了一些常用爬虫需求。它是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。Beautiful Soup的缺点是不能加载JS。
7、mechanize:它的优点是可以加载JS。当然它也有缺点,比如文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。
8、selenium:这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。Selenium是自动化测试工具,它支持各种浏览器,包括 Chrome,Safari,Firefox等主流界面式浏览器,如果在这些浏览器里面安装一个 Selenium 的插件,可以方便地实现Web界面的测试. Selenium支持浏览器驱动。Selenium支持多种语言开发,比如 Java,C,Ruby等等,PhantomJS 用来渲染解析JS,Selenium 用来驱动以及与Python的对接,Python进行后期的处理。
9、cola:是一个分布式的爬虫框架,对于用户来说,只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。项目整体设计有点糟,模块间耦合度较高。
10、PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。Python脚本控制,可以用任何你喜欢的html解析包。
B. python web开发用什么框架
对初学者来说,循序渐进是最重要的,我推荐学习 Flask(Welcome | Flask (A Python Microframework))
Flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。
Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm + Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制。
BTW:果壳网基于 Flask 开发的。
另外也简单介绍下其他框架:
1. Django。如楼上所说,是一个全能型框架。目前 Django 的使用面还是很广的,有学习的价值,但是不建议初学者学习,因为要学习的东西太多了,一下子难以吸收会失去兴趣。当然,Django 的目的是为了让开发者能够 快速 地开发一个网站,它提供了很多模块,其中我最喜欢的就是 admin 模块,http://your.site.com/admin 就进入了网站的后台(内置的哦~)方便地对数据进行操作,等等。。。。因此,如果对 Django 熟悉的话,papapa 一下子就写好一个网站的原型了。
2. Tornado。传说中性能高高的框架。Tornado 是一个很好的框架,支持异步处理的功能,这是它的特点,其他框架不支持。另外一点是,Tornado 的设计似乎更注重 RESTful URL。但 Tornado 提供了网站基本需要使用的模块外,剩下的则需要开发者自己进行扩展。例如数据库操作,虽然内置了一个 database 的模块(后来独立出去了,现在叫做 torndb,bdarnell/torndb · GitHub)但是不支持 ORM,快速开发起来还是挺吃力的。如果需要 ORM 支持的话,还需要自己写一层将 SQLAlchemy 和 Tornado 联系起来,而且这里还有一个坑。
BTW:知乎就是基础 Tornado 开发的。
3. Bottle。Bottle 和 Flask 都属于轻量级的 Web 框架。但是 Bottle 似乎落寞了。我觉得跟他的 API 设计有关系。个人认为 Bottle 使用起来不那么顺手,因此也用得少。这里不做太多介绍。
4. web.py。也是很轻的一个框架,使用不多,也不做介绍。
5. web2py。我看楼上都没有对这个框架做介绍。这个框架是 Google 在 web.py 基础上二次开发而来的,兼容 GAE 。性能据说很高,曾经用他来做自己的主页,感觉也还不错。缺点同样是对扩展支持不太好,需要自己进行扩展。
6. Quixote。着名的 豆瓣 就是基于 Quixote 开发的。跟上面几个框架不同,Quixote 的路由会有些特别。另外 Quixote 的性能据说也好。
C. 干货分享!Python三大web框架简单介绍
1、Django
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。
2、Flask
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
Flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm + Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制。
3、Tornado
Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。
得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。
关于干货分享!Python三大web框架简单介绍,环球青藤小编就和大家分享到这里了,学习是永无止境的,学习一项技能更是受益终身,所以,只要肯努力学,什么时候开始都不晚。如果您还想继续了解关于python编程的学习方法及素材等内容,可以点击本站其他文章学习。
D. python都有哪些框架
这要看你说的是那些方面的框架
像web框架 flask、django、Tornado
爬虫 Scrapy、Crawley、Portia
框架多得是,要你需要什么框架
E. Python Web开发比较流行的框架都有什么
目前Python流行的Web框架包括:Django、Flask和Tornado。框架把构建Web应用的通用的代码进行了封装,把相应的模块组织起来,使用Web框架可以更轻松、快捷的创建web应用,不用去关注一些底层细节。
1、Django框架
Django是基于Python的免费和开放源代码Web框架,它遵循模型-模板-视图(MTV)体系结构模式。它由Django Software Foundation(DSF)维护,这是一个由非营利组织成立的独立组织。Django对基础的代码进行了封装并提供相应的 API,开发者在使用框架是直接调用封装好的 API 可以省去很多代码编写,从而提高工作效率和开发速度。
Django的设计理念如下:
①松耦合——Django的目标是使堆栈中的每个元素彼此独立。
②更少的编码——更少的代码,因此可以快速开发。
③不重复自己(DRY)——一切都应该只在一个地方开发,而不是一次又一次地重复。
④快速开发——Django的理念是尽一切可能促进超快速开发。
⑤简洁的设计——Django严格按照自己的代码维护简洁的设计,并易于遵循最佳的Web开发实践。
Django的一些优势如下:
①对象关系映射(ORM)支持——Django在数据模型和数据库引擎之间建立了桥梁,并支持包括MySQL,Oracle,Postgres等在内的大量数据库系统。
②多语言支持——Django通过其内置的国际化系统支持多语言网站。因此,您可以开发支持多种语言的网站。
③框架支持——Django内置了对Ajax,RSS,缓存和其他各种框架的支持。
④GUI——Django为管理活动提供了一个很好的即用型用户界面。
⑤开发环境——Django带有轻量级的Web服务器,以促进端到端应用程序的开发和测试。
⑥Django是Python Web框架。和大多数现代框架一样,Django支持MVC模式。
2、Flask框架
Flask 是 Python 编写的一种轻量级 ( 微 ) 的 Web 开发框架,只提供 Web 框架的核心功能,较其他类型的框架更为的自由、灵活、更加适合高度定制化的 Web 项目。Flask 在功能上面没有欠缺,只不过更多的选择及功能的实现交给了开发者去完成,因此 Flask 对开发人员的水平有了一定的要求。
3、Tornado框架
在之前的学习过程当中,学习过了 Flask 和 Django 这两个 Python Web 框架,现在来认识一个更加复杂但是高效的 Python Web 框架 : Tornado。
Tornado 是 Python 编写的一个强大的可扩展的 Web 服务器,在处理高网络流量的时候表现的足够强大,但是在创建的时候,和 Flask 类似又足够轻量,并且可以被用到大量的工具当中。相对于其他的框架,
Tornado 有如下特点:
1、完整的 Web 开发框架,和 Django,Flask 一样,Tornado 也提供了路由映射,request 上下文,基于模板的页面渲染这些功能。
2、同样是一个高效的网络库,性能可以和 Python 的 Twisted,Gevent 等底层框架媲美,同时提供了异步IO, 超时事件处理,功能,这样 twisted 除了做 Web 之外还可以做爬虫,物联网关或者游戏服务器等后台应用。
3、提供了高效的 HTTPClient, 除了服务器端框架,还提供了基于异步框架的 HTTP 客户端
4、提供了高效的内部服务器,Tornado 的内部服务器可以直接用于生产环境
5、完备的 WebSocket 支持
关于Python的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。