搜索引擎爬虫

搜索引擎爬虫

ID:36236899

大小:179.87 KB

页数:5页

时间:2019-05-07

搜索引擎爬虫_第1页
搜索引擎爬虫_第2页
搜索引擎爬虫_第3页
搜索引擎爬虫_第4页
搜索引擎爬虫_第5页
资源描述:

《搜索引擎爬虫》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、概要设计与算法思想阐述总流程图图3-1总流程图算法思想阐述爬虫的广度优先遍历存储结构:存放URL的队列算法思想:广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。为覆盖尽可能多的网页,一般使用广度优先搜索方法。将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。URL队列的操作模块算法分析:利用数据结构中的采用数组实现

2、的存放URL的队列,根据队列的相关操作:判断队列是否为空,判断队列是否已满,当前URL是否已添加,向队尾添加一个URL,从对头取出一个URL等等,以及相关线程的操作实现所要求功能。由于本程序是多线程下载,这就要求当其中一个线程在对公共区域进行操作时先将此区域锁定防止其他线程进行同样的操作,在操作完毕后在进行解锁。查找模块算法分析通过在加入队列时通过哈希表的查找当前URL是否已经存在于队列中来判断当前URL是否已经存在。详细设计与算法分析广度优先遍历模块功能在完成当前层次的搜索后,才进行下一层次的搜索。流程图开始获取起始URL提取网页中所有

3、的链接否将提取的链接存入队列中队列是否为空是结束存储结构与算法分析存储结构:存放URL的队列。算法分析:广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。核心分析:voidMainThread::Run(CString&str_Begin){//向共享数据区URL队列加入根URLm_DownData.AddURL(str_Begin);//访问根URLif(m_DownData.AddThread()){AfxBeginThread(

4、DownloadFile,this);}//依次启动工作者线程,根据共享数据区URL队列依次到指定URL下载while(!m_bDone&&!(m_DownData.IsEmpty()&&m_DownData.GetCurThread()==0)){Sleep(100);//判断全局变量ThreadPause,是否暂停线程if(ThreadPause)continue;if(m_DownData.AddThread()){AfxBeginThread(DownloadFile,this);}}Sleep(1000);AfxMessageB

5、ox(_T("任务完成!"));ExitInstance();}Run函数是多个线程的管理程序,当队列为空时退出程序。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。