在sogou-upd我们是如何使用python的(1)

搜狗用户平台事业部有大量的资源导航项目具有相似的流程,以kan.sogou.com搜狗影视为例,主要流程如下:

1.合作抓取影视第三方(迅雷/腾讯视频/土豆...)的数据

2.对抓取到的数据进行清洗/聚合/rank计算

3.将经过2之后的数据展示在用户面前


其他类似搜狗笑话,搜狗小说,搜狗团购都是类似的逻辑.所以我们在新的技术架构时希望可以做一套通用的流程框架出来。主要的技术方案如下:

1.使用scrapy进行数据抓取

2.使用gearman做任务分发

3.使用sentry做异常/日志处理

4.使用unitest和coverage.py做单测和代码覆盖率

5.使用redis做通用缓存

6.使用django做前端展示/后台管理系统

7.使用solr做全站搜索

8.搭建私有pypi源,所有提交和安装全部使用私有源

9.搭建全套的readthedocs,使用sphinx做代码文档管理


其他辅助工具就很多了,诸如orm相关等等~~


流程上主要是:使用scrapy进行数据抓取,抓取后对数据进行拆分,每一个影视剧信息作为一个task提交到gearman,所以在对应的worker进行入库处理.

在client抓取和worker处理时打印的log直接发送到sentry做可视化管理,出现问题也直接通过sentry可以配置email来通知第三方. 

随后对于抓取到的数据,开启了大量的service来进行监控,包括:死链检测/mis自动封禁等等

在整个处理流程中有较多的细节问题,包括技术方案的选型,各个sys的搭建和性能优化; 通用框架的适配性(我们希望做成插件机制,各个app只要insert到project即可);持续集成的监督完善等,后续会逐步介绍.

你可能感兴趣的:(在sogou-upd我们是如何使用python的(1))