为了解决这个问题,搜索引擎就有了它特有的工作模式,它先尽可能多的将数据海洋里的信息全部找出来,然后存储在自己的服务器群组中,一旦有了搜索请求,它只要在自己的服务器里进行检索就行了。
而帮助搜索引擎完成找这个动作的就是爬虫。
因为国际互联网中的信息节点都是相互关联的,是网状联系的,每个节点上都会有很多个URL。所以爬虫的工作模式就是遍历,当它开始工作时,它会以一个信息节点为起点,然后挨个访寻与这个节点相连的所有节点,当下一层节点还有URL链接时,它就不断访问下去,直到将所有URL遍历一次才算完。
因为整个互联网的网状结构,使它具备网状互通性,所以等爬虫将所有URL遍历了,一般来说它就已经将整个国际互联网所有链接全部访问了一遍,这注定是一个比环球旅行更加令人叹为观止的行为。
而莫回既然想弄这个股神1.0,他想要搜集海量数据,那么他要做的事情其实和搜索引擎要做的事情很像,只不过搜索引擎是所有信息都要搜集,而莫回只需要关注股票相关的信息就行了。
这样的话,莫回的爬虫就必须在具备遍历能力的同时,还得具备筛选的能力。
遍历的能力解释起来很简单,就是你不能走回头路和冤枉路,游历过的URL就犯不着再走第二遍了。一条新的URL被发现,首先需要判断这条URL是否已经走过,其次需要判断这条URL被安排在什么次序去走。一个是重复性问题,一个是最优化问题,这就需要独特的遍历算法来解决。
而筛选功能就是通用爬虫和专用爬虫之间的主要区别,莫回的爬虫需要具备一定的识别能力,能够辨别某个URL中的内容是否具备相关性,如果不具备那么就跳过,如果具备就将其中的内容复制回来待用。
这个筛选功能同样需要一大堆的算法来解决,不仅如此,它还需要具备自然语言处理能力,就是说它得具备对语言文字的理解和解析的能力,它得能够识别哪些文字内容是与股票相关的,哪些是无用的。
仅仅识别文字还是不够的,它还得能够识别其他格式的数据,比如它得能够识别图案,像是股票相关的各种K线图、柱状图之类的,爬虫必须能够将其与风景画或者自拍照区别开。
除了图片,其他的像是视频、音频、各类数据库之类的,爬虫都需要一一辨别出来,确定是否属于相关内容。
这里面将会有无数个技术难题需要解决,如果这个工作让莫回一个人来完成,几乎是不可想象的。