爬虫的基本实现原理是通过URL访问,来获取目的服务器的特定内容;
爬虫的主体架构大概可以分为几个部分:通过URL获取返回内容、分析内容提取可继续访问的URL、分析内容提取特定内容,本地化;
通过URL获取返回内容在一般的程序语言中均有成熟的库支持,需要注意的一点是目前很多系统都存在防止频繁访问的控制,特别是部署在云平台的项目均自带此功能;由于该控制是直接封源地址,想要解决该问题,需要用到代理,同样,代理也在限制范围内,所以需要有一个模块用于专门搜寻免费代理服务器;
对于需要获取特定页面特定内容的爬虫来说,目标服务器内可能存在大量不存在所需内容的页面,所以需要设立一个过滤机制,将有价值的页面链接单独存放,以方便后续访问,同样,为了避免重复访问,可以对已经爬取过的页面进行标记;
爬虫需要获取的信息种类不一,可以是图片、视频、文章等。这些内容都有在页面中,一般都存在于特定的区域,爬虫需要定位到这些位置,后进行内容获取;
在获取到数据后,本地化是一个重要的模块,杂乱无章的保存方式让爬虫毫无意义。初步处理可以使用数据源的标题等进行标记,进一步处理,可能需要对内容添加标签,进行更新详细的分类;更进一步的分析,则需要对内容编写一套特定的逻辑,这个将会是一个更大的工程。