医药电商网站建设网站开发人员工资水平
web/
2025/9/28 18:18:09/
文章来源:
医药电商网站建设,网站开发人员工资水平,上海网站开发怎么做,wordpress英文版中文版10011311341 吕涛、10011311356李红目的#xff1a;通过熟悉使用火车头采集器#xff0c;在网络上采取3万条笑话并进行排重#xff0c;以此来熟悉web文本挖掘的一些知识。过程#xff1a;本次学习#xff0c;主要分成两个部分。第一部分是笑话文本的采集#xff0c;第二部…10011311341 吕涛、10011311356李红目的通过熟悉使用火车头采集器在网络上采取3万条笑话并进行排重以此来熟悉web文本挖掘的一些知识。过程本次学习主要分成两个部分。第一部分是笑话文本的采集第二部分是笑话排重。以下是具体过程第一部分 笑话抽取火车头采笑话基本流程新建分组新建任务采集网址设置采集内容设置抓数据。一、新建分组及任务根据需要设立“课程”分组以便于以后学习过程中练习使用又建立了子分组“笑话抽取”。本次采集笑话主要是两个网站“中文幽默王”及“开心驿站”由于不同的网站html各种功能框架不同而不同框架结构的采集规则又不同所以将其分成了两个任务建立“开心驿站”和“中文幽默王”。如图1所示图1 分组及任务二、采集网址及内容规则设置由于本次采集作为课程练习使用所以不牵扯到发布因此任务编辑上面仅设置第一步“采集网址规则”和第二步“采集内容规则”如图2所示图2 编辑任务下面学习过程介绍均以开心驿站为例叙述第一步采集网址规则首先要先添加起始网址http://www.kxx.cc/ 接下来的笑话网址采集就分为两种方式。第一种就是在“添加开始采集地址”窗体中设置“批量/多页”项设置“等差数列”方式即采集的笑话从第一页到最后一页这些页数是成公差为1的等差数列如图3所示图3 批量/多页设置将“开心驿站”上面各类笑话设置完全效果图如图3所示图4 起始网址效果图当然如果仅此设置的话我们一页只能采到一条笑话实际上“开心驿站”上面的一页可以显示16条笑话这样我们还要设置一下“多级网址采集规则”。可以手动分析页面html格式然后填写规则这里采用最简单的可视化Xpath方式获取地址。如图5所示图5Xpath方式获取地址我们可以看出多级网址获取方式为get如图6所示图6 多级网址设置效果图第二种就是不在设置“批量/多页”而是直接设置“多级网址获取”首先获得“开心驿站”上面各个分类的默认打开地址。例如“校园笑话”http://www.kxx.cc/xiaohua/list4-1.html这些网址的获取我们同样采用的是最简单的可视化地址Xpath方式获得。Xpath获得的网址里面有可能不是我们想要的网址比如list10-1和list13-1分别为图片和视频所以我们可以进行“结果网址过滤”如图7所示图7 结果网址过滤设置接下来就是“列表分页获取”设置这个就是对每个分类的默认页进行下一页的采集根据html里面的格式我们如图8所示设置图8 列表分页获取设置至于每一页要采集到16条笑话的网址这个就和第一种方式是一样的。就此略过。第二步 采集内容规则首先我们要设计自己想要的记录属性采集笑话需要“标题”“内容”“分类”三个属性如图9所示内容标签定义图9 内容标签定义具体到各个标签的规则定义如下图10-13图10 前后截取方式抽取标题图11可视化抽取内容需要注意的是在内容抽取过程中可能会遇到一些html标签残留或者是双引号感叹号以及省略号等等不显示这时候我们可以根据需要进行html标签排除和一些字符的替换。图12可视化提取分类图13 规则测试三、抓数据通过以上“网址采集规则”和“内容采集规则”的设置就可以开始任务了。经过一段时间数据采集完成我们可以对任务进行右单击选择“打开Data下任务文件夹”就可以看到默认为Access的数据文件当然也可以转换为Excel格式。由于排重的时候我们是以Excel格式进行数据输入的所以我们将其转换为Excel格式。第二部分 笑话排重算法思想本次笑话排重主要是从内容上判断。采用MD5摘要算法我们选取第一个句话前后7个字符进行MD5码运算就是中文“。”和英文“.”前面4个后面两个再加本身7个字符进行MD5运算没有中文句号和英文句号的暂时定为不重复。然后对比比每条笑话的前七个字符的MD5码。根据“select*,count(distinct Md5)from mo1 group by Md5”将和现有的笑话重复的笑话排除掉。算法描述MD5对以512位为单位的输入进行变换最终以32位为单位4个的压缩信息组输出。根据运算结果的唯一性我们可以每条笑话的第一个句号的前7个字符进行相同MD5运算比对之后进行确认是否相同。MD5过程描述如图14图14 MD5过程算法实现1、inputimport MySQLdbimport xlrdconn MySQLdb.connect(hostlocalhost , user root,passwdroot ,db joke ,use_unicodeTrue,charsetutf8)cursor conn.cursor()data xlrd.open_workbook(E:\joke1.xls)table data.sheets()[0]cursor.execute(select *,count(distinct Md5)from mo1 group byMd5;)rows cursor.fetchall()for row in rows:k row[0]a int(table.cell(k,0).value)b table.cell(k,1).valuec table.cell(k,2).valued table.cell(k,3).valuee table.cell(k,4).valuef table.cell(k,5).valueg table.cell(k,6).valuesql INSERT INTO jo1values(%s,%s,%s,%s,%s,%s,%s)cursor.execute(sql,(a,b,c,d,e,f,g))cursor.close()conn.commit()2、MD5算法代码实现# -*- coding: UTF-8 -*-import xlrdimport reimport hashlibimport MySQLdbdata xlrd.open_workbook(E:\joke1.xls)table data.sheets()[0]conn MySQLdb.connect(hostlocalhost , user root,passwdroot ,db joke ,use_unicodeTrue,charsetutf8)cursor conn.cursor()for n in range(1,table.nrows):a table.cell(n,4).valueprint nmdfor i inrange(len(a)):s if a[i] u.:printa[i]if i len(a)-1:j len(a)elif i len(a)-2:j len(a)else:j i3for k inrange(j-7,j):s sa[k]m hashlib.md5(s.encode(utf8))md m.hexdigest()breakelif a[i] u。:printa[i]if i len(a)-1:j len(a)elif i len(a)-2:j len(a)else:j i3for k inrange(j-7,j):s sa[k]m hashlib.md5(s.encode(utf8))md m.hexdigest()breakif md :md str(n)sql INSERT INTO mo1values(%s,%s)cursor.execute(sql,(n,md))cursor.close()conn.commit()报告总结本次课程作业进行过程当中遇到了很多问题有些解决了有些目前还没有火车头是门学问各种规则的书写学习路还很漫长在以后的学习过程中慢慢积累经验。排重的算法上也还有不足在今后的学习当中应该再接再厉。总之本次课程学习学到了很多东西。特别是在学习方法上自己吃不透的地方可以向别人请教可以通过别的渠道获取知识。学习是个任道重远的事情自己的能力也有触及不到的地方日后的工作也会更多的依赖团队的合作所以要更加注重合作的重要性。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83468.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!