以前用过Nutch,爬虫还是很厉害,配起来有各种问题,时间紧,找个简单的。
迅搜,http://www.xunsearch.com/
我不懂搜索引擎,有需求说要快速搭建一个搜索引擎,并将指定的搜索结果靠前显示,找到了这个。
安装配置很简单,不多说,看:
http://www.xunsearch.com/doc/php/guide/start.installation
因为只有两个小时时间,我就用了它的demo示例。
默认安装完的目录:
/usr/local/xunsearch
启动服务:
/usr/local/xunsearch/bin/xs-ctl.sh start
切到下面目录:
/usr/local/xunsearch/sdk/php
编辑demo示例,因为没有url,demo没法跳转,添加之。。。
vi app/demo.ini
编辑csv文件,准备导入数据,chrono是时间戳
找了半天,没找到怎么从网上爬数据,时间紧迫,改为导入数据。
// 清除原有数据
util/Indexer.php --clean demo
// 将新建的csv文件导入demo实例
util/Indexer.php --source=csv --file=/usr/local/xunsearch/sdk/php/12345.csv demo
// 生成web访问文件
php util/SearchSkel.php demo /var/www/html
生成后访问:search.php
打开很慢,看是引用了google的js,上拉登,把js 和css down到本地,修改search.tpl引用。
打开search.tpl,找到标题显示部分,修改a的href为 url,如下:
<a href="https://www.cnblogs.com/dwj192/p/<?php echo $doc->url; ?>" target="_blank"><h4><?php echo $doc->rank(); ?>. <?php echo $search->highlight(htmlspecialchars($doc->subject)); ?> <small>[<?php echo $doc->percent(); ?>%]</small></h4></a>
其它:收录时间,是时间戳,格式化为标准时间格式,时间戳弄起来很费劲,我直接写了随机数,固定时间输出是用户要求
<span><strong>收录时间:</strong>
<?php
if(htmlspecialchars($doc->url) == 'http://123.com/'){
echo '2011-02-21';
}else{
echo '201'.rand(5,7).'-'.sprintf("%02d", rand(1,12)).'-'.sprintf("%02d", rand(1,28));
}
?></span>
再改改logo、版权啥的,上线(成吉思汗)。。。