admin管理员组

文章数量:1530516

大家都知道百度云网盘上有很多分享的资源,包括软件、各类视频自学教程、电子书、甚至各种电影、BT种子应有尽有,但百度云却没有提供相应的搜索功能。个人平时要找一些软件、美剧觉得非常蛋疼。于是就尝试开发一个百度云资源的搜索系统。

资源爬虫思路

搜索引擎么最重要的就是有海量的资源了,有了资源,只要再基于资源实现全文检索功能就是一个简单的搜索引擎了。首先我需要爬取百度云的分享资源,爬取思路,打开任意一个百度云分享者的主页yun.baidu/share/home?uk=xxxxxx&view=share#category/type=0,你可以发现分享者有订阅者和粉丝,你可以递归遍历订阅者和粉丝,从而获得大量分享者uk,进而获得大量的分享资源。

系统实现环境

语言:python

操作系统:Linux

其他中间件:nginx mysql sphinx

系统包括几个独立的部分

1、基于requests实现的独立资源爬虫

2、基于开源全文检索引擎sphinx实现的资源索引程序

3、基于Django+bootstrap3开发的简易网站,网站搭建采用nginx1.8+fastCGI(flup)+python演示网站http://www.itjujiao

PS:

目前爬虫爬取了4000W左右的数据,sphinx对内存的要求实在太大了,巨坑。

百度会对爬虫做ip限制,写了个简单的xicidaili代理采集程序,requests可以配置http代理。

分词是sphinx自带的实现,支持中文分词,中文基于一元分词,有点过度分词,分词效果不是特别理想,比如我搜关键词“叶问3”出现的结果中会有“叶子的问题第3版”,不符合预期。英文分词有很多可以改善的地方,比如我搜xart不会出现x-art的结果,而实际上x-art却也是我想要的结果集(你们懂的)

数据库是mysql,资源表,考虑单表记录上限,分了

本文标签: 架构云网搜索引擎资源Python