《Perl程序设计与数据挖掘》课程设计报告.docVIP

《Perl程序设计与数据挖掘》课程设计报告.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Perl程序设计与数据挖掘》课程设计报告

《Perl程序设计与数据挖掘》课程设计报告 姓名:程辉 班级:计算机06-2 学号:0611310201 问题描述: 我们常用百度MP3搜索来下载歌曲,但需要一首一首地来下载,而且下载每首歌需要打开多个页面,甚是麻烦。平时常用的迅雷下载工具非常适合批量下载,若能从百度MP3网页中批量获取歌曲的URL,并存入文件,建立迅雷能够识别的下载列表,此问题即解决。 编程思路: 以百度的“歌曲TOP500”列表页为例:/topso/mp3topsong.html?top2。分以下几步骤: 下载列表页,并存入临时文件; 分析列表页HTML,抽取每道歌的歌名,作者,以歌曲的搜索页。以排名第一的歌曲为例:歌名是《北京欢迎你》,作者是群星,搜索页是:/m?tn=baidump3ct=134217728lm=-1li=500word=%B1%B1%BE%A9%BB%B6%D3%AD%C4%E3+%C8%BA%D0%C7; 将2中搜索页地址传递给processURL1,此函数打开并下载该网页,分析HTML,抽取第一个搜索项的URL:2/m?ct=134217728tn=baidusg,%B1%B1%BE%A9%BB%B6%D3%AD%C4%E3%20%20word=mp3,/dz/month_0804/Y2JjbGVqaHGQZ5RrlmZsbpZmbJVpZ2uaaWtqmWumsYiUrJ1rfp1uo2oy.mp3,,[%B1%B1%BE%A9%BB%B6%D3%AD%C4%E3+%C8%BA%D0%C7]si=%B1%B1%BE%A9%BB%B6%D3%AD%C4%E3;;%C8%BA%D0%C7;;0;;0lm并将此地址传递给processURL2; processURL2打开该网页,找到歌曲下载的真正地址:/dz/month_08045a7a056e49a414b897e6pzPczj7Ig7k9.mp3,并返回给Main函数; Main函数将歌名、作者、下载地址写入Log.lst文件,供迅雷下载使用。 程序源码: 见Task.pl或附件。 输入数据:见图1. 输出数据: Log.lst中数据如下: 1、群星 - 北京欢迎你 /Upload/bjwelcome.wma 2、杨丞琳 - 左边 /Skyclass/Courseware/Blog/Blog60/070324226951.wma 3、张栋梁 - 北极星的眼泪 /2018/f/wma/beiji.wma 4、蔡依林 - 日不落 /01.mp3 5、徐誉滕 - 等一分钟 /1min.mp3 6、周杰伦 - 青花瓷 /qhc.mp3 7、海鸣威 - 老人与海 /mp3/老人与海.mp3 8、弦子 - 舍不得 6/wm1223/1207539029.wma 9、吴克群 - 为你写诗 /hm_fm103/upfiles/排行榜/音乐排行榜(港台)/牵牵牵手%20%20吴克群.mp3 10、梁静茹 - 会呼吸的痛 /3gp2_new2梁静茹()会呼吸的痛.3gp 歌曲列表已经下载完成!将此文件导入迅雷即可下载。    图1:输入数据及终端显示结果 过程描述及编程体会: 整个过程花了两天时间,第一天把课件全部重新看了一遍,并把重要例题都实现了。第一天晚上及第二天上午在网上补充学习课件中不详细的地方,如CFAN模块的使用,子程序,正则表达式等内容。并研讨了几个综合实例。下午程序核心功能完成,然后开始调试查错,调试过程中发现了很多可以改进的地方,如开始设计只能下载一个列表,然后修改正则式,则可以下载百度MP3中几乎所有歌曲列表,并添加了选择列表功能及控制下载数量。查错过程还比较顺利,分别测试每个模块,都没问题了,再组装到一起。Perl的错误提示也比较有效,基本都能找到错误点。但有一个错误却花了不少时间,就是程序的中间有个花括号方向错了,应该是},却写成了{,错误提示一直指到程序的最末一行。最后一行一行地检查才找到这个错误。 存在的问题及思考: 网速过慢时,下载过多歌曲列表时会让人有点受不了。教育网内如果不用代理,速度则很慢,下载十首歌的列表时需要一两分钟,而用代理则只需要几秒钟。不知百度的蜘蛛是如何做到快速地在遍历全球WEB站点的。可以想到的办法是用无数的蜘蛛以极大的宽带来遍历,当然还得需要优良的算法。 正则表达式是如何做到快速匹配的?它的效率是不是很高?对它的原理还不清楚,以后学习过程中需要花时间来研究它。 附件:Task.pl #################################### #程序名:百度MP3小蜘蛛 #作用:获取百度MP3网站上歌曲列表(如歌曲TOP500等列表)中每首歌曲的信息及下载

您可能关注的文档

文档评论(0)

lifupingb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档