vb抓取网页内容 Python传奇:30年崛起之路

优采云 发布时间: 2022-05-26 03:45

  vb抓取网页内容 Python传奇:30年崛起之路

  随着Python自身功能的完善以及生态系统的扩展,Python在Web开发、网络爬虫、数据分析与数据挖掘、人工智能等应用方面逐渐崭露头角。

  Django和Flask引领的WEB开发模式

  2004年,目前最流行的WEB框架Django诞生。2010年,另一个流行的轻量级WEB框架Flask诞生。Django是一个WEB解决方案“全家桶”,其功能大而全,包含了几乎所有WEB开发相关的组件和功能,它可以大大节省开发者在基础组件、选型、适配等方面的时间和精力;而Flask只包含基本的配置,默认依赖于两个外部库也可以自由替换,给开发者提供最大的自主空间。这两类完全相反方向上的WEB开发模式,几乎可以为所有开发者提供了很好的选型参照物:无论开发者想要一站式还是最大化自主解决方案,Python都能满足。

  此后,以豆瓣、春雨医生、知乎、Dropbox、YouTube、CIA(美国中情局)等为代表的企业和机构都基于Python做网站开发,预示着Python应用到WEB开发领域逐渐成为一种新兴趋势。

  人人都能胜任的网络爬虫

  Python自带的标准库中,urllib、urllib2、requests库对于简单网页的抓取实现非常简单,即使在面对海量数据抓取需求时,第三方库Scrapy也能应对自如;再配合正则表达式库re、网页代码解析BeautifulSoup、html和xml解析库lxml、多线程库threading等特性,使得Python在应用到网络爬虫任务上时,只需要很少的开发量便能迅速完成任务。基于Python简单易学的特性,几乎人人都能开发网络爬虫。

  比shell更好用的自动化运维工具

  Python是跨语言和平台的,几乎所有Linux系统和MAC系统都自带Python库,Windows系统也可以自定义安装。Python默认的os、sys等库可实现与操作系统的交互和执行功能,更重要的是Python还能直接执行系统终端命令。因此,使用Python编写的系统运维和管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本,在自动化运维方面应用广泛。

  数据分析与科学计算三剑客

  2008年发布的Numpy、scipy和2009年发布的pandas是数据分析与科学计算的三剑客。

  NumPy(Numeric Python的简称)是Python科学计算的基础工具包,也是Python做数据计算的关键库之一,同时又是很多第三方库的依赖库。

  Scipy(Scientific Computing Tools for Python的简称)是一组专门解决科学和工程计算不同场景的主题工具包,它提供的主要功能侧重于数学、函数等,例如积分和微分方程求解。Pandas(Python Data Analysis Library的简称)是一个用于Python数据分析的库,它的主要作用是进行数据分析和预处理。

  Pandas提供用于进行结构化数据分析的二维表格型数据结构DataFrame,类似于R中的数据框,能提供类似于数据库中的切片、切块、聚合、选择子集等精细化操作,为数据分析提供便捷。另外,Pandas还提供了时间序列的功能,用于金融行业的数据分析。

  除此之外,很多大型公司也都在使用Python完成不同类型的其他工作,其中不乏世界知名公司,如国外的Google、Facebook、NASA 、雅虎、YouTube等,国内的网易、腾讯、搜狐、金山等。例如谷歌在Google Groups、Gmail、Google Maps等项目中将Python用作网络应用的后端;在Google Cloud Platform中的Google Cloud Storage本地部署环境中,gsutil也在Python 2基础上开发和应用。

  后Python2与Python3时代

  AI让Python大放异彩

  2008年12月,Python 3发布。Python 3相对于Python 2的早期版本(主要是Python2.6之前)是一个较大的升级,它在设计的时候没有考虑向下兼容,所以很多早期版本的Python程序无法在Python 3上运行。为了照顾早期的版本,推出过渡版本2.6——基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。同时,Python还提供了Python 2到Python 3的Python文件转换功能,以帮助开发者升级。

  2010年7月发布了Python 2.x系列的最后一个版本,主版本号为2.7。大量Python 3的特性被反向迁移到了Python 2.7,2.7版本比2.6版本进步非常多,同时拥有大量Python 3中的特性和库,并且照顾了原有的Python开发人群。Python2.7也是当前绝大多数Linux操作系统最新版本的默认Python版本。

  从2008年开始,Python 2与Python 3是并存发展的。但在2018年3月,Guido在邮件列表上宣布Python 2.7将于2020年1月1日终止支持,这意味着之后Python 2将不再被统一维护,与之对应的是主流第三方库也不会再提供针对Python 2版本的开发支持。Python 2的时代即将过去。

  这一时期,Python继续以其独特魅力吸引更多的开发者加入,但真正让Python大放异彩的却是AI(人工智能)的爆发。

  AI并不是一个新生事物,而是从20世纪50年代就开始出*敏*感*词*时期,又分别在20世纪70年代和90年代两次进入寒冬期。从2006年开始,神经网络、深度学习的出现,让AI进入爆发期。

  在AI领域,Python拥有很多相关库和框架。其中最著名的是:

  在互联网领域,Facebook和Google都是全球IT企业的标杆,具备行业领导力和风向指示意义。他们基于Python开发的AI库(PyTorch和TensorFlow)已经成为目前最流行的AI库,而且“到底选择PyTorch还是Tensorflow”仍然是一个具有争议性的话题。

  在AI时代,主要应用场景包括:

  在不同的领域,Python都能扮演非常重要的角色,因此,在国外的各大榜单中,Python都已经成为最受欢迎的语言(或至少是之一)。不只在商业领域流行,国内很多地区和教育机构正将Python纳入教材之中。比如Python进入山东小学六年级的教材,浙江信息技术教材将放弃VB,改用Python 语言,Python列入全国计算机二级*敏*感*词*大纲等。

  Python的未来发展

  在Python发展过程中,Guido一直是核心人物,甚至被称为“终身仁慈独裁者”,但在2018年经历了退出管理层风波之后,他又在2019年以五大指导委员之一的身份重回决策层。这为Python迎来了新的治理方案:指导委员会模式。这种模式意味着Python的未来将从Guido一人决定变为5人决定,虽然比很多开源语言仍然有民主化空间(例如PHP的改进由社区投票决定),但也算是一种从专制到民主的进步。

  有关Python的每个提升计划,都是在PEP(Python Enhancement Proposal)列表中——每个版本新特性和变化都通过PEP提案经过社区决策层讨论、投票决议,最终才有我们看到的功能。

  目前,Python的最新稳定的主版本是3.7,Python 3.8也已经有了预览版,大概在2023年左右Python 4便会问世。在之后的时间里,Python会如何发展?我们可以从Python软件基金会的董事会成员、CPython的核心开发人员Nick Coghlan的信息中略知一二:

  首先,Python的PEP流程和制度没有任何变化,通过增加新模块和功能来增强的基础能力。随着Python 2在2020年不再维护,社区在Python 3的资源和投入会相应增加。

  其次,不同解释器的实现和功能扩展还将继续增强,方向包括PyPy关于JIT编译器生成和软件事务内存的尝试,以及科学和数据分析社区,对面向数组编程的探索等。

  再次,嵌入式应用的增强,核心是与其他虚拟机运行时(如JVM和CLR)的集成和改进,尤其是在教育领域取得的进展,可能会让Python作为更受欢迎的嵌入式脚本语言,在更大的应用程序中运行。

  最后,对于为了兼容和维持Python 2的部分功能而存在于Python 3中的原有代码,在后续版本中应该会逐步优化甚至去掉。而对于其他更改,则会根据情况弃用、提出警告、逐步替代以及保留。

  

  报道路演请复制下面链接在浏览器打开:

  私投荟报名请复制下面链接在浏览器打开:

  产品备案、外包、托管请复制下面链接在浏览器打开:

  法律意见书请复制下面链接在浏览器打开:

  管理人登记备案辅导请复制右侧链接在浏览器打开:

  FOF尽调邀约请复制下面链接在浏览器打开:

  财富论坛请复制下面链接在浏览器打开:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线