一、 编译
1. 安装JDK(java开发工具包),这步环境变量设置比较麻烦(例如我用的是jdk6.0_13),在系统属性->高级->环境变量中,设置如下三个变量(如果没有的话,则新建一个该名称的变量):
1) JAVA_HOME,添加值:D:/Program Files/Java/jdk1.6.0_13;//如果只有一个变量值,不需要加“;”号。
2) ClassPath,添加值:.;%JAVA_HOME%/lib/tools.jar;
3) Path,添加值:%JAVA_HOME%/bin;
2. 将文档bddbot.zip解压到bddbot目录下(以bddhot为根目录,如放在E盘下,则为E:/bddbot),bddbot目录下有bdd和searchdb两个子目录。
3. 修改bdd/search/EnginePrefs.java:String email_address = "Felomeng@live.cn"; // 改成自己的电邮
4. 打开开始->运行->输入cmd->回车,在命令行中,先转到目录bddhot下,再执行命令javac bdd/search/EnginePrefs.java(其余的所有类文件也都已经编译,如果没有编译的话到相应文件夹下执行命令javac *.java即可)
5. searchdb文件夹下两文件rules.txt和urls.txt的用法,顾名思义:
rules是对urls的约束条件,有两种用法:include和exclude,如include http://grs.pku.edu.cn/zs/,就是下载http://grs.pku.edu.cn/zs/开头的所有网页。urls是初始爬取的页面地址列表,每行一个地址,系统在这个地方不完善,对.html和.htm结尾的网页(即使用全名的网页)效果较好。#表示注释,即没有作用。
二、 爬取
1. 配置rules.txt值为include http://grs.pku.edu.cn/zs/
2. 配置urls值为http://grs.pku.edu.cn/zs/zs_news.html
3. 命令行中执行java bdd.search.Monitor(注意,命令行当前目录应为bddbot)打开图形界面
|
图1 主界面
其中
1) Queries栏目是检索所用关键字的记录;Current Url是当前正在处理的网页;
2) Total Bytes表示已经下载的内容的流量;
3) Processed是已经处理过的网页地址列表;
4) Errors是出错的网页地址列表,在命令窗体中有详细的错误记录。
|
4. 点击start crawler,该按钮变成不可用状态,开始爬取。爬取完成后,该按钮恢复到可用状态。
|
图2 正在爬取
|
|
图3 爬取完成
其中Queries里面记录的是汉字内容,显示成了乱码,对汉语支持不完善。命令窗体的错误记录为:
java.net.MalformedURLException: unknown protocol: javascript
at java.net.URL.<init>(URL.java:574)
at java.net.URL.<init>(URL.java:464)
at bdd.search.spider.HTMLLinkExtractor.analyzeAnchor(HTMLLinkExtractor.j
ava:76)
at bdd.search.spider.HTMLLinkExtractor.analyze(HTMLLinkExtractor.java:63
)
at bdd.search.spider.HTMLLinkExtractor.<init>(HTMLLinkExtractor.java:43)
at bdd.search.spider.URLStatus.getLinkExtractor(URLStatus.java:152)
at bdd.search.spider.Indexer.run(Indexer.java:93)
|
5. 本次下载后主索引文件(在E:/bddbot/searchdb/main.db)大小为1.34M,用时共约20分钟。
三、 搜索测试
1. 检索:
<form action="http://222.29.124.166:8001/query" method=GET>
<input type="text" name="words" value="" size=45>
<input type="submit" value="Search">
</form>
把上面见容另存为html文档,其中222.29.124.166改成本机地址即可使用,一般windows下测试可以直接使用localhost(当然,可以在此基础上在界面上面多添加一些元素),如图:
|
图4 搜索界面
|
2. 然后用浏览器打开它,在开启Monitor的情况下(注意,要求已经成功爬取完成一部分语料),输入关键字进行搜索。
|
图5 一个搜索结果
|
附:bddbot源码及其文档、bddbot测试报告(使用方法) Word版。
分享到:
相关推荐
著名开源搜索引擎bddbot的使用方法。
这是一个和方便和简易的搜索引擎,希望帮到大家,运行monitor类就可以打开窗体,再通过使用浏览器就可以输入要搜索的关键字
著名开源搜索引擎,编写语言Java,源代码和相关文档。
python-selenium-bdd 一个基于Python的测试框架,包括BDD,Selenium Webdriver和Page Object Model。 在文章中了解有关如何使用此存储库的更多信息:
android手机应用源码Imsdroid语音视频通话源码.rar
营销计划汇报PPT,市场品牌 推广渠道 产品 营销策略tbb.pptx
JavaScript
JavaScript
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
520表白html5爱心代码
520表白html5爱心代码 一个简单的HTML5和CSS代码示例,用于创建一个动态的爱心形状,并在网页上展示一个类似520表白的消息。这个示例使用了CSS的动画效果和HTML的结构。
智慧养老社区方案.pdf
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
JavaScript
codeviz 1.0.12
JavaScript
JavaScript
JavaScript
JavaScript
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。