程序员

搜索引擎踩过的坑

2018-05-06  本文已影响0人  1c5c99819799

在网上搜到IBM社区一个博主,有关搜索引擎的教程,于是便拿来学习,以下是在学习过程中踩过的坑,教程及其源码附上百度云盘链接 密码:t80r

首先说一下,该教程讲述详细,以及有配套源代码(带有注释),根据该教程可以制作一个简单的搜索引擎。

当时自己摸索,最终算是根据教程完成了搜索引擎的编写,以下是我踩过的坑,记录一下。

一,爬虫阶段。

1,该教程给的爬虫程序,我尝试着跑了一下,总是跑不几个网页,就会出现错误。该教程将爬取的数据存储在五个txt格式文档里,但是运行之后,总会出现最后一个文档不能写入数据,即只有前四个文档有,如果将存储文档变少,那么还是会出现最后一个文档不能写入。总之在文档存储时会出现问题。

2,这份教程写于2010年,不知道当时的前端技术如何,反正经过此程序下载下来的页面,也是不全面的,有些页面数据需要一些处理之后,才能得到,我觉得这份教程的爬虫只是简单模拟浏览器请求,比如对于百度页面的请求下载就是很简单的页面,<script></script>这样的代码就请求不到,更别说一些<meta>标签的数据了。

3,示例爬虫的架构,我觉得值得学习。

4,爬虫爬取的时候,因为有的网页用的UTF-8编码,有的用的GBK编码,这个在爬取时需要注意,不然爬取下来的网页容易乱码。

解决方法:放弃原有的爬虫,选择学习了一个爬虫框架,学习的是WebMagic,解决了爬虫阶段爬取数据的问题。

二,数据预处理阶段

1,该教程的数据库表没有给出,根据给的源码和教程,我推出数据库表有以下几列:ID、url、content、offset、raws。

2,该教程的预处理制作索引时,如果前期爬取的网页有乱码,就会导致此阶段的制作索引流程出现问题,当时我出现的问题只能制作前几个无乱码的网页,后面从出现乱码的地方都打印出的索引数目都是0️⃣。

3,该教程给出的词典词库并不全,且是2010年前的词库,对于现今常见的词汇可能并不含有,所以相应的索引也无法建立。

4,在过程中会涉及好多路径的问题,要注意路径的编写,是否是获取路径还是获取文件,要注意。

三,查询服务阶段

系统及软件macOS 10.12.6,Eclipse 4.7,Tomcat 8.5版本。

1,这个阶段出现的问题就是,搭建好服务器并编写好页面后,在控制台可以查询输出,但是通过页面传值后,就无法返回数据。经查是Eclipse编码出现了问题,我设置成了GBK编码,将其改为与网页的UTF-8编码相同即可。

上一篇下一篇

猜你喜欢

热点阅读