《基于Python语言的网络数据挖掘》实验指导书2014(21页).doc
《《基于Python语言的网络数据挖掘》实验指导书2014(21页).doc》由会员分享,可在线阅读,更多相关《《基于Python语言的网络数据挖掘》实验指导书2014(21页).doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-基于Python语言的网络数据挖掘实验指导书2014-第 21 页基于Python语言的网络数据挖掘实验指导书电子科技大学信息与软件工程学院二一四年6月一、 实验教学目的和要求:实验目的:本课程实验旨在加深学生对于网络大数据挖掘的理解,培养学生分析、设计、实现基于Python语言的网络数据挖掘算法,掌握科学的实验方法,为以后其他专业课的学习打下坚实的基础。该实验内容采用循序渐进的方式,从Python语言的基本语法入手,在加深学生对于Python语言熟悉的基础上突出数据挖掘应用。实验提供功能要求,学生自己确定设计方案和需要思考如何设计最优化的算法,并完成结果记录和分析,充分发挥学生的创造性和主
2、动性。实验要求:了解并掌握Python语言的基本语法、能够使用Python读取或写入数据表、获取并分析网络文本数据、获取并处理图像数据等。二、 Python开发环境简介:本课程实验使用的Python开发环境为Python IDLE,其用户界面图见图1所示。IDLE是开发python程序的基本集成开发环境,具备基本的IDE的功能,是Python教学的不错的选择。当安装好python以后,IDLE就自动安装好了,不需要另外去找。同时,使用Eclipse这个强大的框架时IDLE也可以非常方便的调试Python程序。其基本功能包括语法加亮、段落缩进、基本文本编辑、TABLE键控制、调试程序。打开 Id
3、le 后出现一个增强的交互命令行解释器窗口(具有比基本的交互命令提示符更好的剪切、粘贴、回行等功能)。除此之外,还有一个针对 Python 的编辑器(无代码合并,但有语法标签高亮和代码自动完成功能)、类浏览器和调试器。菜单为 TK “剥离”式,也就是点击顶部任意下拉菜单的虚线将会将该菜单提升到它自己的永久窗口中去。特别是 Edit 菜单,将其“靠”在桌面一角非常实用。Idle 的调试器提供断点、步进和变量监视功能。图1 Python IDLE界面图三、 实验项目名称及目的要求:实验项目1 Python语言的基本语法及简单应用1、实验目的1) 掌握Python语言的基本语法2) 掌握Python
4、语言中创建模块的方法3) 了解Python语言中定义类及其使用方法4) 学习使用Python语言输出斐波那契数列的方法5) 学习使用Python语言实现删除一个list里面的重复元素的方法2、实验内容1)根据Python基本语法功能设计出实现输出斐波那契数列的方法,并比较不同实现方法的性能。2)根据Python语言中的排序和循环功能,实现删除一个list里面的重复元素3、实验原理1) 设计输出斐波那契数列的Python程序:首先调用raw_input输入要打印的斐波那契数列的长度,然后把斐波那契数列存储于一个序列当中,并逐个打印序列的元素。此实验部分实现代码如下#通过输入斐波那契数列的长度打印
5、斐波那契数列 FibonacciUptoNumer = int(raw_input(Please input a Fibonacci Series up to Number : )n = FibonacciUptoNumerfibs = 0, 1for number in range(n): fibs.append(fibs-2 + fibs-1)2) 设计删除一个list里面的重复元素程序:首先调用List.sort()对序列进行排序,然后调用last = List-1语句从后向前找出重复的元素,并逐个打印非重复的元素。此实验部分实现代码如下if List:List.sort()last =
6、 List-1for i in range(len(List)-2, -1, -1): if last=Listi: del Listi else: last=Listiprint List4、 实验步骤1)设计输出斐波那契数列的Python程序l 分析实验要求l 逐个打印输出斐波那契数列的元素l 记录程序代码l 记录并分析实验结果2)设计程序删除一个list里面的重复元素l 分析实验要求l 对list进行排序l 从后向前查找并删除list中的重复元素l 记录程序代码l 记录并分析实验结果实验项目2 使用Python读写Excel数据1、实验目的1)强化Python程序的设计和编程能力2)学习
7、两种读取的Excel数据的方法3)学习写入Excel数据的方法4)掌握如何读写其他格式数据的方法5)掌握如何比较不同读写方法的运算性能2、实验内容1)用xlrd模块中的open_workbook实现打开Excel数据表,并设计使用索引和名称两种方法读取Excel数据,最终写入csv文件中。2)用datetime模块中的datetime.now来计算两种不同的读取方法所用CPU时间,从而比较并分析不同算法的性能。3、实验原理1)Python语句读取Excel表数据时,首先要调用xlrd模块,然后使用语句data = xlrd.open_workbook(excelFile.xls)打开Excel
8、表格。当一个Excel表格中包含多个Sheet时,可以通过索引或者名称顺序获取某一个Sheet中的数据。使用的语句分别为table = data.sheet_by_index(0)和table = data.sheet_by_name(uSheet1)。当获取某个Sheet的数据并存储在工作表table后,获取获取整行和整列的值(数组)的语句为table.row_values(i)和table.col_values(i),获取行数和列数的语句为nrows = table.nrows和ncols = table.ncols,循环获取行数据的语句为for i in range(nrows): pr
9、int table.row_values(i)。此实验部分实现代码如下#根据索引获取Excel表格中的数据def excel_table_byindex(file= abc.xls,colnameindex=0,by_index=0): data = open_excel(file) table = data.sheets()by_index nrows = table.nrows #行数 colnames = table.row_values(colnameindex) #某一行数据 list = for rownum in range(1,nrows): row = table.row_v
10、alues(rownum) if row: app = for i in range(len(colnames): appcolnamesi = rowi list.append(app) return listdef excel_table_byname(file= abc.xls,colnameindex=0,by_name=abc): data = open_excel(file) table = data.sheet_by_name(by_name) nrows = table.nrows #行数 colnames = table.row_values(colnameindex) #某
11、一行数据 list = for rownum in range(1,nrows): row = table.row_values(rownum) if row: app = for i in range(len(colnames): appcolnamesi = rowi list.append(app) return list在该实验中,学生需用前述的Excel数据操作语句实现读取某一个Sheet数据的功能,并在此基础上,思考如何读取其他格式的数据,记录Python代码,并分析实验结果。2)Python语句写入Excel表数据时,首先要调用pyExcelerator模块,然后使用语句w =
12、Workbook()和ws = w.add_sheet(excelFile.xls)创建一个空白的工作表。在某一个cell写入数据的语句为ws.write (i, j, string),而w.save(mini.xls)实现了存储写入后的Excel文件。此实验部分实现代码如下from pyExcelerator import *w = Workbook() #创建一个工作簿ws = w.add_sheet(test) #创建一个工作表ws.write(0,0,uestc) #在1行1列写入uestcws.write(0,1,Sofrware) #在1行2列写入Softwarews.write(
13、1,0,cs) #在2行1列写入csw.save(mini.xls) #保存至mini.xls文件中在该实验中,学生需用前述的Excel数据操作语句实现写入某一个Sheet数据的功能,并在此基础上,思考如何写入其他格式的数据(如csv格式),记录Python代码,并分析实验结果。3)比较两种不同的读取Excel数据的方法时,需要计算每种方法的运行时间。首先导入datetime模块,并调用datetime.now()函数,记录某一段代码运行前后的时间点,通过开始和结束的时间点的差值计算出程序运行的时间。此实验部分实现代码如下starttime = datetime.datetime.now()t
14、ables = excel_table_byindex()for row in tables: print rowendtime = datetime.datetime.now()print endtime - starttimestarttime = datetime.datetime.now()tables = excel_table_byname()for row in tables: print rowendtime = datetime.datetime.now()print endtime - starttime在该实验中,学生需用前述的CPU时间控制语句实现计算某一段代码的运算时
15、间,并在此基础上,比较并分析两种Excel数据读取方法的性能。记录Python代码,并分析实验结果。4、 实验步骤1)设计按名称和按索引读取Excel数据的程序l 分析实验要求l 按行打印Excel表中的数据l 记录程序代码l 记录并分析实验结果2)设计写入Excel数据的程序l 分析实验要求l 按行将数据写入Excel表中l 记录程序代码l 记录并分析实验结果3)设计计算程序运行时间的程序l 分析实验要求l 记录程序代码l 比较并分析实验结果l 总结,撰写实验报告实验项目3 使用Python实现网络爬虫算法1、实验目的1)强化Python程序的设计和编程能力2)学习网络爬虫算法的原理3)学习
16、使用Python语言实现网络爬虫算法2、实验内容1)理解网络爬虫算法的原理,并设计使用Python语言获取网页数据的程序。2)用Python语言中的threading和GetUrl模块对网站中URL进行搜集。3、实验原理1) 爬虫算法原理:网络爬虫(又被称为网页蜘蛛,网络机器人,网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。很多搜索引擎都使用爬虫提供最新的数据,搜索引擎利用用户访问过页面的一个副本进行索引,以提供快速的访问。网络爬虫也可以在web上用来自动执行一些任务,例如检查链接,确认html代码;也可以用来抓取网页上某种特定类型信息,例如抓取电子邮件地址。本实验中
17、使用的网络爬虫算法是广度优先搜索(BFS)。广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。另外一种应用是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。2)Python语句在某一个网页上获取数据时,首先要分析网页的HTML源代码,我们以淘宝网页中的商品分类(本实验中要调用urllib2和sgmllib.SGMLP
18、arser模块,并使用语句content = urllib2.urlopen(网页URL).read()来获取网页的内容。并使用list.feed(content)语句将网页内容存入列表,进行处理。此实验部分实现代码如下class ListName1(SGMLParser):def _init_(self):SGMLParser._init_(self)self.is_h4 = self.name = def start_h4(self, attrs):self.is_h4 = 1def end_h4(self):self.is_h4 = def handle_data(self, text)
19、:if self.is_h4 = 1:self.name.append(text)class ListName2(SGMLParser):def _init_(self):SGMLParser._init_(self)self.is_h5 = self.name = def start_h5(self, attrs):self.is_h5 = 1def end_h5(self):self.is_h5 = def handle_data(self, text):if self.is_h5 = 1:self.name.append(text)content = urllib2.urlopen(li
20、stname1 = ListName1()listname2 = ListName2()listname1.feed(content)listname2.feed(content)在该实验中,学生需用前述的爬虫算法实现语句实现写入读取淘宝网页商品分类标题的功能,并在此基础上,思考如何实现读取其他网页数据的方法,记录Python代码,并分析实验结果。3)在获取网站上的URL时,需要调用GetUrl模块。本实验中通过调用threading 模块采用多线程算法实现网站URL的获取。此实验部分实现代码如下def Craw(self,entryUrl): #这是一个深度搜索,到g_toDlUrl为空时结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Python语言的网络数据挖掘 基于 Python 语言 网络 数据 挖掘 实验 指导书 2014 21
限制150内