APP下载

为抓新闻热点 初涉人工智能

2020-08-17吴冲

大学生 2020年8期
关键词:爬虫教程开源

吴冲

30分钟,37行代码,6000条数据

我在百度上搜索了“爬虫”,大量的爬虫实战案例就展现在我眼前。在认真阅读了多篇文章后,我发现大部分案例都用了python语言。因为python是一门开源语言,简单易用,很多技术或算法都是用python编写的,并且很多人也愿意将自己的工作成果分享到网上,其中有不少数据挖掘与数据分析领域的成果,所以利用python语言进行科研或工作,就像站在前人的肩膀上一样,工作效率会大幅度提高。于是第二天一大早,我就背着电脑直奔图书馆,准备花一天时间学习python,完成作业。

因为上过C语言的课程,我知道编程基本的逻辑跟我们思考问题和处理问题的思维方式是一样的。拿到python语言代码文件后,我发现它的行文逻辑跟C语言差不多,只有变量声明方式、函数写法等关键词、语言特性等基础知识略微不同。随后,我去网上找来一个python语言的基础教程,快速浏览基本的知识内容后,便开始模仿一个爬虫例子,试着编写我自己的爬虫命令。

按照爬虫案例的思路,我先引入HTTP请求库、数据处理库和Execl文件生成库,然后写了一个函数来获取网站数据,又写了一个函数来对获取来的数据进行数据整理,最后用一个执行函数来调用前面两个函数,并将处理整理后的数据写入新创建的Execl表格中,就可以完成快速获取数据的任务了。整个过程一共用了大概30分钟,代码仅37行。

完成代码的编写后,我在命令行中输入“python getdata.py”,程序就开始运行了。当看到爬虫分别从新闻网和微博等社交平台获取我需要的热点新闻,并且帮我整理好近3年来近6000条新闻数据,以Execl表格形式在我的目录文件夹中出现的时候,我非常开心和自豪。

这就是我第一次学习使用python的经历。在往后的学习工作里,一旦遇到相关问题,我就会想到python语言,因为它的工作效率非常高。慢慢地,我发现python很适合做数据分析领域的工作,它提供的很多优秀的开源库和框架,能够让我专注于核心任务,比如算法的设计、核心功能的实现等。

作为测绘工程专业的学生,我们的专业培养计划里并没有设置编程课程。我之所以热衷自学各种编程知识,是因为如果把计算机技术与本专业背景结合在一起,就能完成很多同学无法胜任的工作,比如进入老师的课题组承担核心工作,高效地完成科研任务等等,这将成为我最重要的竞争力。同时,我也逐渐认识到,专业出身并不是壁垒。许多技术大牛都是非科班出身的,大家的专业各不相同,唯一相同的就是牢固的基础知识和无数次写代码的实践,我想這放在我身上同样适用。在学长学姐的推荐下,我找到了一个python自学教程。因为这个教程是直接挂在网上的,很方便学习,而且教程的作者一直都在维护和更新内容,以保证它的准确性和友好性,因此它在网上颇有声誉。

100行代码认出我的脸

进入教程,我在首页的python语言简介一栏看到一句醒目的话:“C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。”我深以为然,这正是python的魅力所在。

一般来说,刚开始学习一门编程技术时,第一步就是安装语言环境和开发环境。python语言的环境安装非常简单,因为我使用的是苹果电脑,苹果电脑的Mac OS系统本身就内置了python,所以只要安装一个编辑器,就可以直接开始进行编程学习了。

从python文件的代码结构,到内部每一句代码每一个关键词的含义,对我来说都比较容易理解。我一边看每一个章节的知识点,一边按照教程内容进行实操,遇到无法理解的难点时,只要用百度搜索一下,一般都能找到详细解答。为了加深知识点印象,我将这门教程反复学习了多遍。当感觉脑海中存储的知识越来越多,思路越来越清晰的时候,我觉得下一步就应该去找实际案例进行练习了。以练带学,才能真正掌握这门语言。

我在网上开源社区GitHub找了一些python的项目案例,期待通过阅读别人的源代码来提高自己的编程能力。当我看到别人写的具体项目时,发现从项目工程目录的文件组织到具体python文件的编写,都非常专业和巧妙。比如目录会按不同的功能详细划分成不同的功能文件,重复编写的地方特别少,在后面的程序中只要需要,就可以直接调用,这样一来,代码量就减少了很多,也更加易于后期的更新和维护。此外,分析python文件的每一个函数或者重要的语句都有相应的解释,变量和函数的命名也都用了统一的英文名,非常易于阅读。

同时我还发现,不少案例中的许多内容都跟教程有差别,比如同样的数据排序功能,别人用一行代码就实现,而我却要写很多行才能做到。百思不得其解,我便咨询了计算机课程的老师。老师告诉我,我从基础知识教程中学到的方法是最基础的最简单的,但也因为基础,并不会涉及一些编程的技巧。而在别人分享的真实案例中,一般都运用了编程技巧。老师建议我在实际操作时多学习模仿别人的编程思路和做法,比如灵活运用函数式编程、面向对象编程等技巧,这在开发大型项目时,就能大大减少代码量,提高效率,也能让软件系统更加稳定。

我学习python已经有3年多了,python早已成为我科研学习路上的得力助手。

就这样,我不断地练习数据挖掘、数据分析、网站系统等项目实战案例。最让我印象深刻的是,一次在做一个人脸识别的案例时,我新建了一个python工程文件,引入了python人脸识别的开源引擎face_recognition,写了不到100行代码,我就看到画面中的自己被一个绿色的框子识别了出来,并标注出了我的名字。这是我第一次感受到人工智能技术离我这么近,也让我在以后遇到图像处理、深度学习等任务时开始有底气、有信心,敢去尝试挑战了。

一个月,独立开发系统

经过一段时间的学习,我对python的兴趣越发浓厚。为检验自己的学习效果,我和几个同学一同报名参加了当年的创新创业互联网+大赛。虽然大家都不是计算机专业的,但我们就想尝试挑战,想看看别人到底有多么厉害。我们选定的项目是开发一个基于LBS的图书共享系统,我自告奋勇地接下了编程技术的任务。因为我知道,只要舍得花时间去研究,目标是有很大概率实现的。

网站应用系统是python的基础应用领域,像国内的豆瓣网,国外的youtube等,它们的系统后台都是用python来开发的。于是,我重新回到教程,再次深入学习了与python web编程相关的知识点,比如IO编程、数据库、web框架和引入第三方模块等知识,然后从GitHub上找了一个与我所需要开发的系统类似的python项目,认真研读源码后,我开始边模仿边开发自己的新系统。

在开发过程中,我经常会遇到一些报错信息,因为身边没有精通python的同学请教,我只好去百度,甚至去国外网站查找问题的解决办法,这对英语水平不高的我来说,又是一个挑战。经过一个多月的努力,我终于把系统开发出来了。当自己设计的网站首页出现在眼前的时候,我的心里别提有多激动了。

尽管最终我们没拿到好的名次,但通过参加比赛,我在短时间内成功建立了一个完整的python系统项目,这让我收获了满满的知识和信心。随后,我发现在老师的很多科研项目中,自己甚至都可以承担起整个项目的开发任务了,这是我身边很多同学都做不到的。

如今,我学习python已经有3年多了,python早已成为我科研学习路上的得力助手。我认为,在技术升级发展日新月异的今天,及时跟进科技发展的脚步,敢于利用新技术新知识来强化自己的专业能力,实现跨界融合,是大学生在专业领域得到提高的有效途径。

责任编辑:曹晓晨

猜你喜欢

爬虫教程开源
利用网络爬虫技术验证房地产灰犀牛之说
基于Python的网络爬虫和反爬虫技术研究
五毛钱能买多少头牛
利用爬虫技术的Geo-Gnutel la VANET流量采集
大数据环境下基于python的网络爬虫技术
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
《阅读教程》三、四册修辞格分析
开源计算机辅助翻译工具研究