- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
搜索引擎第二次实验报告汇编
实验二:实验一、实验目的:根据网络爬虫的基本原理,实现一个简易网络爬虫,需要达到以下指标:1、种子URL为;2、至少抓取10000个页面;3、至少完成3轮抓取,每轮给出更新的URL及其数量;4、实现URL判重,列出每轮爬去时重复的URL数量;5、数据存放到数据库中,能抽取出网页中的标题、页面生成日期(http协议中的时间),至少包含标题、时间、url、抓取时间、网页正文这几个字段。二、实验方案:爬虫分析与设计我们组应用的是java来写爬虫,我们应用SSM框架将数据库和应用程序连接起来,可以在程序中更简单的进行数据库插入、查询等操作。在对url处理的时候我们用的是Java的URL类,通过这个类可以获得请求头的一些信息,例如编码方式。如何获取url,我们一开始遇到了一些问题,直接解析网页中的ref标签的时候得到的不全是网页链接,所以转换思路,我们先得到页面中的a标签,然后再得到a标签里边href中的url,然后再对url进行处理。在处理url的时候,因为网页中的url并不是全部以http开头的,所以在url获取部分,对url的格式进行判断,如果通常格式就进行修改,例如,有的链接是”#”,我们就把开始搜索的url加到它的前边,形成一个正确的url。图1:应用URL类获取网页内容图2:利用url请求头获取编码信息图3:获取a标签图4-1:获取url图4-2:获取url图5:url判重数据库分析与设计我们设计了两个表,一个是未爬取url表,两一个是已经爬取url表。未爬取的表中村的是搜索判重之后,还没有爬取的url,已爬取的存储爬取到的信息。图6:判重后需要爬取的url表图7:爬取后url信息存储表图9:去重后url的部分信息图10:爬取结果部分信息图11:网页内容存txt部分信息三、实验结果及分析:试验中每一次爬取的网页数量都是超过了10000的,达到了数量上的要求,但是在处理的过程中,对于中文的解析有的并不理想,这个是因为有的url在请求头里边没有网页的编码信息,所以对于这种网页的处理是按照“utf-8”的编码方式处理的,所以得到的数据可能会有乱码。此外有的网页中没有title标签,所以有的标题不可以得到。在一开始的时候爬虫程序就是简单的按顺序获取网页内容,内因程序写的效率不高,爬取2000+网页就用了一个小时,所以在之后用到了三个线程同时爬取,使得爬取的速度有了很大的提升。图12:三次爬取结果对比四、实验总结:优点:爬取数据的存取应用了数据库,相较文本而言,应用数据库在数据的存取上十分的方便,效率要高很多,因为如果用文本进行存取,每一次比较数据的时候都要把文本遍历一遍,时空效率都很低,另外用数据库存数据条目很清晰,可以方便观察爬取到的数据;爬取数据运用多线程,有效的提高了爬取效率,在没有用多线程进行爬取的时候2000+个url爬取了1个小时,之后用了3个线程同时爬取数据,爬取的效率有了明显的提高。缺点:文本处理有瑕疵,有的网页在请求头没有给出编码信息,所以获得到的文本信息含有乱码,有的没有给出网页的发布时间,所以只有把发布时间默认成爬取的时间。有的网页中没有title标签,没有办法得到url的标题。在网上看到了一些论文,有针对乱码、网页文本提取等问题的解决方法,因为这一次的经验不够多,不能在时限之内完善爬虫的功能,之后会根据论文的描述进一步完善。
文档评论(0)