- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、GetWeb类源代码分析
通过对程序代码分析,绘制程序执行流程概要如下:
详细功能流程图如下(为了便于理解程序执行过程,流程图中的变量标识与源代码中的变量名并不对应):
详细功能流程图中变量标识与源代码中变量名的对应关系:
流程图中的变量 源程序中的变量 数据类型(java) 描述 startURL strHomePage String 主页地址 unProcessURLs arrUrls ArrayListString 未处理URL集合 maxDeep webDepth int 最大爬虫深度 DxxxURL deepUrls中的value值 int 某URL的深度值 threadNum 创建抓取线程时的循环变量i int 循环变量i maxThread intThreadNum int 最大线程数 GetWeb类的主要字段和方法的功能概述
字段摘要 java.util.Hashtablejava.lang.String,java.lang.Integer allUrls 存储所有URL的编号 java.util.ArrayListjava.lang.String arrUrl 存储所有URL供建立索引 java.util.ArrayListjava.lang.String arrUrls 存储未处理的URL java.lang.String charset 字符集, 默认为GB2312 java.util.Hashtablejava.lang.String,java.lang.Integer deepUrls 存储URL的爬虫深度 java.lang.String fPath 储存网页文件的目录名, 默认为web int intThreadNum 最大线程数, 默认为10 int intWebIndex 网页文件对应下标, 从0开始 java.lang.String myDomain 主页地址中的域名 java.lang.String report 网页抓取报告 long startTime 抓取开始时刻 java.lang.String strHomePage 主页地址, 即起始URL int webDepth 爬虫深度, 默认为2 int webFailed 抓取失败的URL计数 int webSuccessed 抓取成功的URL计数 方法摘要 void addReport(java.lang.String s)
生成报告文件, 将内容s添加到报告文件中(多线程同步操作) void addWebFailed()
抓取失败URL计数(多线程同步操作) void addWebSuccessed()
抓取成功URL计数(多线程同步操作) java.lang.String getAUrl()
从未处理URL集合中取一个URL, 并将这个URL从未处理URL集合中删除(多线程同步操作) java.lang.String getDomain()
判断用户所提供URL是否为域名地址 java.lang.Integer getIntWebIndex()
生成一个新的网页文件下标(多线程同步操作) java.lang.String getUrl()
从所有URL集合中取一个URL, 并将这个URL从所有URL集合中删除(多线程同步操作) void getUrlByString(java.lang.String inputArgs, java.lang.String strUrl)
提取网页文本中的URL链接(解析新的网页,提取其中含有的链接信息) void getWebByHomePage()
由用户提供的域名站点开始,对所有链接页面进行抓取 void getWebByUrl(java.lang.String strUrl, java.lang.String charset, java.lang.String fileIndex)
抓取URL的网页文本并从中提取URL链接(对后续解析出的url进行抓取) 程序运行时,根据用户输入的主页地址和最大爬虫深度调用getWebByHomePage方法,首先将主页URL添加到arrUrl和allUrls队列中,为其分配初始编号0,并设置爬虫深度为1 ;然后调用getWebByUrl方法抓取主页内容,将其存入网页文件中,同时从抓回的网页文本中提取链接(使用getUrlByString方法)存入arrUrls队列和arrUrl队列中。同时在allUrls队列中为每个URL分配一个网页编号,在deepUrls中添加并设置每个URL的爬虫深度(父链接爬虫深度+1,这里为1+1=2)。
接下来,循环创建10个抓取线程开
您可能关注的文档
- 城市与建筑认知实习报告.doc
- 城乡居民收入差距现状及分析论文.doc
- 程序可移植性设计及性能优化.doc
- 茌平4X1100MW机组空冷平台制作工艺.doc
- 充分利用设计中心,提高设计效率.doc
- 初三下册学习资料课后题及观察思考讨论题.doc
- 初一数学上学期知识总结 (全).doc
- 初中物理学业考试(中考)与初中物理课程实施.doc
- 初中物理知识点总结修正.doc
- 传统媒体微博如何提高影响力.doc
- 二零二五年度存量房买卖合同(贷款支付)3篇.docx
- 二零二五年度存量房屋买卖合同字——老旧厂房改造项目房屋购置.docx
- 二零二五年度学区房公寓买卖合同3篇.docx
- 二零二五年度存量房买卖合同(非物质文化遗产传承)3篇.docx
- 2024-2025学年七年级数学下学期期中模拟模拟卷(沪教版2024)(考试版A4).pdf
- 二零二五年度存量房买卖合同(绿色建筑标准)3篇.docx
- 二零二五年度学校实验楼墙面维修与施工协议.docx
- 二零二五年度学校保健站兼职校医职责合同3篇.docx
- 二零二五年度学校教学楼外墙岩棉保温工程合同3篇.docx
- 二零二五年度学校工程承包工程铝合金窗户更换合同3篇.docx
文档评论(0)