📄 design-doc.txt
字号:
Tiny Search Engine* 功能描述: 1.网页抓取,并且保存了网页原文。 可以能够抓取不是.html结尾的URL,比如.pdf,.doc。用ISAM格式存储,存于数据文件(WebData.dat和 WebData.idx)中。 抓取时考虑了connect,read超时的情况;网页资源转向的情况(通过header的Location来获得);链接分析中相对URL转化为绝对URL;具有屏蔽抓取设定好的站点的功能;缓存hostlookup ;多线程抓取,网站连接控制(就是同一时间可以有多少个线程去抓同一个网站)。 抓取过的Url,保存此Url,此Url网页包含的超链,anchortext信息及字符编码到visitedlink.url中。此外提供与"天网"原始网页相同格式的输出。 可以限定抓取的IP范围或者指定网站,设定文件在ipblock. 有2种工作方式: (1) 读取种子URL,分析出网页中的超链,递归的抓取下去。 (2) 或者读取包含有限URL的文件,按照指定的URL进行抓取。 2.检索 (1) 用户输入URL,从存储的文件中读取出相应资源. (2) 输入关键词查询, 返回相应资源文件。*包内文件介绍: Makefile文件一个,可以直接执行make程序就达到编译连接的目的。PowerTse封装了Tse的功能,可以实现多层抓取网页。 * 使用方法: 在linux下运行,用户必须安装了g++。 键入make编译连接整个程序。 调用语法: Tse -c inputFileName outputFileName[回车] 进入抓取模式. 从urlfilename中读取每一个url并抓取网页。 Tse -s[回车] 进入查询模式,根据提示可以查询关键字,查询指定url。 PowerTse urlfilename recursiveNum[回车] 进入递归抓取模式。 urlfilenaem为包含种子URL文件,recursiveNum为要抓取的网页层数。* 功能模块 1.网页抓取功能 由主程序(Main.cpp)和模块DealEvent.cpp,FindKey.cpp,FindUrl.cpp,HttpTse.cpp,IsamFile.cpp,ParseURL.cpp,组成。命令行提供的参数作为提供URL的文件名。 (1)IsamFile是将抓回的网页存到isam形式的文件中,包括一个存数据的文件(WebData.dat)和一个索引文件(WebData.idx),其中索引文件中存放每个网页开始位置的偏移地址以及其url。 函数原型: int isamfile(char * buffer, int len); 若成功存入,返回1,否则返回0(如文件无法打开等等错误)。 (2)ParseURL从抓取的网页中解析出其中的超链接的url,并存储为文件,以用来进行下一轮抓取。 2.用户查询部分由主程序(Main.cpp)和模块FindUrl.asm,FindKey.asm组成。 (1) FindUrl根据文件WebData.dat和WebData.idx查找指定url并将此网页的前面一部分内容显示在屏幕上。 函数原型: int FindUrl(char * url,char * buffer,int buffersize); 若查找成功返回值0,否则返回-1。 (2) FindKey根据WebData.dat查找含有指定关键字的网页,并输出匹配的关键字的上下文。 函数原型: void FindKey(char *key); 函数中打印找到的url以及key附近的相关内容,每打印一个就出现提示让用户选择继续打印或退出以及显示整个网页文件。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -