这个事情还要从Google或者百度说起。目前的搜索引擎,一般都拥有自己的一套网页检索算法,方便大家迅速的找到需要的网页。但是,当我们在使用各种搜索引擎的时候,是否思考过这样一个问题:搜索引擎是如何搜索到最新网页的信息,并且展现在搜索结果页上的呢?答案就是网页爬虫。
百度蜘蛛,是百度搜索引擎的一个自动程序。它的作用是访问收集整理互联网上的网页、图片、视频等内容,然后分门别类建立索引数据库,使用户能在百度搜索引擎中搜索到您网站的网页、图片、视频等内容。 ——来源·百度百科《百度蜘蛛》
在最初,网页爬虫技术似乎就只是为搜索引擎服务的:一方面是搜索引擎的技术性需要,另一方面是当时的互联网信息,还没有这么庞大,最终的一点是,当时的用户对及时性服务还不是这么迫切。但是现在,网页爬虫早已挣脱了之前的技术局限性,被广泛的应用在各个领域中。例如前阵子大放光彩的“即刻”APP,其核心就是网页爬虫技术。
网页爬虫在不断发展中也产生了很多的新颖并且实用的框架,也从当初的特定编程语言,变成了现在的五花八门,各放异彩的编程语言。然而,在众多的编程语言中,Python无疑是最为重要,也是最为广泛的语言,这期达人课,我们就以Python 作为我们的主力编程语言,助力我们的“起飞”。
无论你之前学过什么语言,无论你是否了解Python,在正式学习本课程前,你需要告诉自己:Python作为高级编程语言,哪怕你没有编程的基础,你也可以高傲而且自豪地去使用它!
本门课程无意争辩到底哪门语言的效率最高,亦或是哪个编程语言是最好的。选择Python 作为本门课程的主力编程语言的理由主要有以下原因:
Python 给自己的定义,就是一个“胶水”语言:哪里需要哪里用。或许和C++、Go等一些语言相比,Python 的运行速度很慢,但是需要指出的是,这里的“速度慢”,仅仅是相比较而言。例如,发送邮件,使用C++需要0.1秒,Python 则需要1秒。虽然速度相差10倍,但是作为日常开发而言,Python 的速度已经完全满足了我们的开发要求。
Python 网络爬虫技术本身发展特别快,甚至可以说,网页爬虫技术随着Python 的发展而发展。从最初Python 自带的urllib 库,到现在流行的BeautifulSoup4、Selenium 等第三方框架。可以说,在网络爬虫的世界中,Python 一直处于”最强王者“的地位。
此图来自于百度指数(2018年4月23日)。可以发现的是,从2014年开始,Python 爬虫的搜索指数呈大幅上升的趋势,也同时应征了Python 在网页爬虫领域上的地位。
在全球知名的Github 网站上,搜索“爬虫”,有5077项使用Python 写的网页爬虫项目,比排名第二的java多出了将近3.5倍!
早些时候由于个人兴趣原因研究并使用了Python,在使用时发现,国内关于Python 网页爬虫的教程虽然很多、内容丰富,但是往往涉及到特别多的前期准备,并不适合Python 新人上手。为了帮助一位学弟尽快的入手网页爬虫技术,我自己总结了自己的网页爬虫学习路线,结合他的实际应用,做出了一套适合新手入门学习的Python 网页爬虫教程。在这套教程的帮助下,学弟很快掌握了核心的技术栈,并且顺利的完成了我对他的毕业要求。
本期达人课,首先介绍Python 和网页的一些基础知识,带你快速的学习Python 的基础语法,再一起讨论网页爬虫框架的使用,如何通过邮件或者短信发送我们需要的信息,最后使用我们学到的技术实现一个在服务器运行的成绩通知短信系统,进行实战演练。
需要强调的是,Python 网页爬虫技术栈经过近几年的发展,可以说已经自成一脉。如果要将这些技术全部展现出来,不仅工作量巨大,而且涉及的技术对于新手也太过深奥。因此,本期达人课涉及的知识仅仅包含了Python 网页爬虫的一小部分,同时因为作者的能力有限,所包含的技术还较为浅显。如有不当,还希望各位多多见谅,提出修改建议。
该系列文章适合以下人群阅读:
在学习本课程之前,希望你有一些基础的开发技能,例如:独立的用C++写出一个从1加到10的控制台程序。
开发环境:
使用到的软件: