基于Python数据爬取在高职高专院校中的教学实现

2020-04-07 03:46牛红霞鲍玉薇
神州·中旬刊 2020年3期
关键词:高职高专教学

牛红霞 鲍玉薇

摘要:随着2019年在全国各高职高专院校开始招收“虚拟现实应用技术”专业学生,Python作为专业基础课程在本专业的课程中占有很大的比重,結合Python语言和高职高专学生的特点,设计教学过程旨在如何将较难理解的数据爬取的内容转变成相对简单的内容,更容易使学生掌握。

关键词:高职高专;Python;教学;数据爬取

课堂教学主要采用项目教学法,结合任务驱动法和现场教学法等教学方法,设置的训练任务为:爬取石家庄信息工程职业学院(以下简称“信工”)校园网新闻,主要学习的内容为:BeautifulSoup和requests库,以及相应的方法。

课堂教学具体过程如下:一段时间以来,全国各地都在开展“不忘初心,牢记使命”的主题教育,教师在课上会要求学生在信工校园网、石家庄任意其它两所专科院校、石家庄所有职技类院校甚至于河北省所有的学校的校园新闻中看看有多少条包含“不忘初心”的新闻,让学生对比几次搜索关键字所需要的时间,设置有什么办法可以满足这样的需求的问题,从而引出本节课要讲的技术---爬虫。

首先,让学生学习什么是爬虫?爬虫定义的关键字就是规则、自动和程序。爬虫的功能很强大,爬虫可以爬取新闻、图片、视频、金融公开信息和用户公开信息;爬虫节省了人工操作,提高了收集数据的效率。

习大大教育我们要“不忘初心,牢记使命”,所以此次的项目任务就是:爬取信工校园网“校园新闻”中包含“不忘初心”关键字的新闻链接和标题;实现爬虫需要4步,分别是1.设定爬取目标,2.分析目标网页,3.获取网页,4.解析网页,获得数据。获取数据的程序部分只要熟练掌握二个方法:第一个方法:对象.get_text()方法,用来提取对象中的文本;比如soup.get_text(),link.get_text();第二个方法:对象.find_all(标签),用来提取满足要求的所有数据,比如find_all("a"),从网页中提取所有标签为“a”数据,其中“a”是源代码标签。要实现获取数据的前提是要搞清校园新闻的网页源代码,通过观察发现,所有的新闻都有一个共性,就是每条新闻的源代码的标签为a,href是它的链接,这是文本。

准备工作做好之后,来学习获取数据的步骤。获取数据的四步:1.判断每页中是否包含“不忘初心”2.找到该页中所有的新闻,3.判断每条新闻是否包含“不忘初心”4.输出。每一步使用指令实现就是1.if“不忘初心”in soup.get_text():2.links=soup.find_all(“a”)3.if“不忘初心”in link.get_text():4.print(link["href"],link.get_text()),再加一条行遍历来扫描所有新闻,这样就完美了。

我们来逐条讲解一下,第一条指令中if 为判断语句,in,a in b 返回真或者假,soup.get_text()获取的是soup对象里面的文本,soup对象里是网页的源代码,所以这条语句的实现的功能就是判断“不忘初心”是否在网页源代码的文本中,假就跳过,若为真执行第二条指令,第二条指令是在soup对象中或者说在网页源代码的中找到所有标签为a的新闻,将它赋值于对象links;第三条指令for link in links,for是遍历循环语句,links是所有新闻,link是单条新闻,其作用就是扫描每条新闻,第四条语句,又是if判断和in语句,link.get_text()获取的是link里的文本。这条语句的实现就是在判断“不忘初心”是否在每条新闻的文本中,假为跳过,假的话打印,打印的内容,link中的href,href是链接,和link.get_text()即每条新闻的文本。因为方法是获取数据的关键,也是本次课的重点。程序实现比较抽象并且指令多,所以是本次课的难点。

虽然学生在实际操作中大多数执行出结果,成功得爬取了校园网包含“不忘初心”新闻内容,但是操作中经常出错的有以下两点:1.单词拼写2.对象位置;学生会出错,说明对知识点还不熟悉,还需要加强学生这两点的练习。

同时,也要给学生强调爬取个人隐私信息是违法的,并不是网络上所有的信息都可以爬取,这就是大数据安全,否则,就会违法甚至犯罪,大数据是把“双刃剑”,数据不能乱爬,这是作为爬虫工程师最基本的道德规范和职业要求,同时,也要保护好个人隐私信息,不让不法之徒有可乘之机。所谓有矛就有盾,网上的信息不能随意爬取,但其实也并不是所有的网页都让爬取的,这就是反爬虫,理解反爬虫技术可以更好地做爬虫,可以安排学生课下学习反爬虫的一些相关知识。

在准备Python的数据爬取课程中,因为自己能力有限,除广泛查阅资料之外,特别感谢与我院合作企业东软王光磊老师的大力支持。

参考文献:

[1]嵩天  Python语言程序设计基础(第二版)高等教育出版社  2017.2

[2]翁正红 Python语言及其应用  电子工业出版社 2018.8

[3]芒努斯·利·海特兰德  Python基础教程 人民邮电出社 2018.2

作者简介:牛红霞(1979-1)女,汉族,河北省石家庄市人,本科,助教,从事计算机应用技术研究。

鲍玉薇(1981-11)女,汉族,河北省石家庄市人,本科,助教,从事虚拟现实技术研究。

猜你喜欢
高职高专教学
“自我诊断表”在高中数学教学中的应用
对外汉语教学中“想”和“要”的比较
高职高专基础会计实践教学模式的创新研究
云南省高职高专校园体育文化现状调查及对策研究
武汉市部分高职高专院校足球课的开展现状及制约因素
跨越式跳高的教学绝招