从入门级选手到专业级选手都在做的——爬虫
用Python写爬虫的教程网上一抓一大把,据我所知很多初学Python
的人都是使用它编写爬虫程序。小到抓取一个小黄图网站,大到一个互联网公司的商业应用。通过Python
入门爬虫比较简单易学,不需要在一开始掌握太多太基础太底层的知识就可以很快上手,而且很快可以做出成果,非常适合小白一开始想做出点看得见的东西的成就感。
除了入门,爬虫也被广泛应用到一些需要数据的公司、平台和组织,通过抓取互联网上的公开数据,来实现一些商业价值是非常常见的做法。当然这些选手的爬虫就要厉害的多了,需要处理包括路由、存储、分布式计算等很多问题,与小白的抓黄图小程序,复杂度差了很多倍。
Web程序
除了爬虫,Python也广泛应用到了Web端程序,比如你现在正在使用的知乎,主站后台就是基于Python的tornado
框架,豆瓣的后台也是基于Python。除了tornado(TornadoWebServer),Python常用的Web框架还有
Flask(Welcome|Flask(APythonMicroframework)),Django(TheWebframeworkfor
perfectionistswithdeadlines)等等。通过上述框架,你可以很方便实现一个Web程序,比如我认识的一些朋友,就通过Python
自己编写了自己的博客程序,包括之前的huphoto,我就是通过Flask
实现的后台(出于版权等原因,我已经停掉了这个网站)。除了上述框架,你也可以尝试自己实现一个Web框架。
桌面程序
Python也有很多UI库,你可以很方便地完成一个GUI程序(话说我最开始接触编程的时候,就觉得写GUI好炫酷,不过搞了好久才在VC6
搞出一个小程序,后来又辗转Delphi、Java等,最后接触到Python的时候,我对GUI已经不感兴趣了)。Python实现GUI
的实例也不少,包括大名鼎鼎的Dropbox,就是Python实现的服务器端和客户端程序。
人工智能(AI)与机器学习
人工智能是现在非常火的一个方向,AI热潮让Python语言的未来充满了无限的潜力。现在释放出来的几个非常有影响力的AI框架,大多是Python的实现,为什么呢因为Python足够动态、具有足够性能,这是AI技术所需要的技术特点。比如基于Python的深度学习库、深度学习方向、机器学习方向、自然语言处理方向的一些网站基本都是通过Python来实现的。
机器学习,尤其是现在火爆的深度学习,其工具框架大都提供了Python接口。Python在科学计算领域一直有着较好的声誉,其简洁清晰的语法以及丰富的计算工具,深受此领域开发者喜爱。
早在深度学习以及Tensorflow等框架流行之前,Python中即有scikit-learn,能够很方便地完成几乎所有机器学习模型,从经典数据集下载到构建模型只需要简单的几行代码。配合Pandas、matplotlib等工具,能很简单地进行调整。
而Tensorflow、PyTorch、MXNet、Keras等深度学习框架更是极大地拓展了机器学习的可能。使用Keras编写一个手写数字识别的深度学习网络仅仅需要寥寥数十行代码,即可借助底层实现,方便地调用包括GPU在内的大量资源完成工作。
值得一提的是,无论什么框架,Python只是作为前端描述用的语言,实际计算则是通过底层的C/C++实现。由于Python能很方便地引入和使用C/C++项目和库,从而实现功能和性能上的扩展,这样的大规模计算中,让开发者更关注逻辑于数据本身,而从内存分配等繁杂工作中解放出来,是Python被广泛应用到机器学习领域的重要原因。
科学计算
Python的开发效率很高,性能要求较高的模块可以用C改写,Python调用。同时,Python
可以更高层次的抽象问题,所以在科学计算领域也非常热门。包括scipy、numpy
等用于科学计算的第三方库的出现,更是方便了又一定数学基础,但是计算机基础一般的朋友。
对于自学的小伙伴,小蜗这里整理了一份Python全栈开发的学习路线,可按照这份大纲进行一些学习计划,避免多走弯路。第一阶段:专业核心基础
阶段目标:
1 熟练掌握Python的开发环境与编程核心知识
2 熟练运用Python面向对象知识进行程序开发
3 对Python的核心库和组件有深入理解
4 熟练应用SQL语句进行数据库常用 *** 作
5 熟练运用Linux *** 作系统命令及环境配置
6 熟练使用MySQL,掌握数据库高级 *** 作
7 能综合运用所学知识完成项目
知识点:
Python编程基础、Python面向对象、Python高级进阶、MySQL数据库、Linux *** 作系统。
1、Python编程基础,语法规则,函数与参数,数据类型,模块与包,文件IO,培养扎实的Python编程基本功,同时对Python核心对象和库的编程有熟练的运用。
2、Python面向对象,核心对象,异常处理,多线程,网络编程,深入理解面向对象编程,异常处理机制,多线程原理,网络协议知识,并熟练运用于项目中。
3、类的原理,MetaClass,下划线的特殊方法,递归,魔术方法,反射,迭代器,装饰器,UnitTest,Mock。深入理解面向对象底层原理,掌握Python开发高级进阶技术,理解单元测试技术。
4、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,PDBC,深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为Python后台开发打下坚实基础。
5、Linux安装配置,文件目录 *** 作,VI命令,管理,用户与权限,环境配置,Docker,Shell编程Linux作为一个主流的服务器 *** 作系统,是每一个开发工程师必须掌握的重点技术,并且能够熟练运用。
第二阶段:PythonWEB开发
阶段目标:
1 熟练掌握Web前端开发技术,HTML,CSS,JavaScript及前端框架
2 深入理解Web系统中的前后端交互过程与通信协议
3 熟练运用Web前端和Django和Flask等主流框架完成Web系统开发
4 深入理解网络协议,分布式,PDBC,AJAX,JSON等知识
5 能够运用所学知识开发一个MiniWeb框架,掌握框架实现原理
6 使用Web开发框架实现贯穿项目
知识点:
Web前端编程、Web前端高级、Django开发框架、Flask开发框架、Web开发项目实战。
1、Web页面元素,布局,CSS样式,盒模型,JavaScript,JQuery与Bootstrap掌握前端开发技术,掌握JQuery与BootStrap前端开发框架,完成页面布局与美化。
2、前端开发框架Vue,JSON数据,网络通信协议,Web服务器与前端交互熟练使用Vue框架,深入理解>
爬虫技术是做从网页上抓取数据信息并保存的自动化程序,它的原理就是模拟浏览器发送网络请求,接受请求响应,然后按照一定的规则自动抓取互联网数据。分析如下:
1、获取网页
获取网页可以简单理解为向网页的服务器发送网络请求,然后服务器返回给我们网页的源代码,其中通信的底层原理较为复杂,而Python给我们封装好了urllib库和requests库等,这些库可以让我们非常简单的发送各种形式的请求。
2、提取信息
获取到的网页源码内包含了很多信息,想要进提取到我们需要的信息,则需要对源码还要做进一步筛选。可以选用python中的re库即通过正则匹配的形式去提取信息,也可以采用BeautifulSoup库(bs4)等解析源代码,除了有自动编码的优势之外,bs4库还可以结构化输出源代码信息,更易于理解与使用。
3、保存数据
提取到我们需要的有用信息后,需要在Python中把它们保存下来。可以使用通过内置函数open保存为文本数据,也可以用第三方库保存为其它形式的数据,例如可以通过pandas库保存为常见的xlsx数据,如果有等非结构化数据还可以通过pymongo库保存至非结构化数据库中。
4、让爬虫自动运行
从获取网页,到提取信息,然后保存数据之后,我们就可以把这些爬虫代码整合成一个有效的爬虫自动程序,当我们需要类似的数据时,随时可以获取。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)