基于tornado,sae的网页版知乎日报
wcwx
10年前
知乎日报网页版
zhihudaily 是基于tornado技术的知乎日报的网页版。部署在sae上。
Demo地址: http://zhihurewen.sinaapp.com
本地测试环境搭建以及运行
- 安装依赖
pip install -r requirements.txt
-
创建表结构:
CREATE TABLE IF NOT EXISTS `news` ( `id` INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT, `news_id` varchar(50) NOT NULL UNIQUE, `title` varchar(100) NOT NULL, `share_url` varchar(100) NOT NULL, `date` varchar(50) NOT NULL, `body` longtext NOT NULL, `image` varchar(100) NOT NULL, `image_source` varchar(100) NOT NULL, `image_public_url` varchar(100) NOT NULL ) DEFAULT CHARSET=utf8; CREATE INDEX date_index USING BTREE ON `news`(`date`); CREATE INDEX news_id_index USING BTREE ON `news`(`news_id`);
-
修改配置文件config.py:
# 密码(311521)的md5 secret = "76a4cebbe7af10ffd169cd9494adcf2f" # 修改debug模式中的数据库配置 DB_HOST = "127.0.0.1" DB_NAME = "daily" DB_USER = "root" DB_PASS = "root" DB_PORT = 3306
-
运行:
python index.wsgi --port=8080
SAE环境搭建
-
申请sae账户,并且创建python应用
-
启动MySQL服务,并创建数据库和表结构
-
修改配置文件config.py:
# 密码(311521)的md5 secret = "76a4cebbe7af10ffd169cd9494adcf2f" # 索引目录名 index_dir = 'dailyindex' # 分词词典,idf目录名 jieba_dir = 'dailyjieba' # 图片存储的bucket name IMAGE_BUCKET = "dailyimage" # 索引,词典,idf文件保存的bucket name FS_BUCKET = "dailyfiles"
-
启动Storage服务,并创建2个Bucket(IMAGE_BUCKET, FS_BUCKET)
-
上传词典,idf文件
在{FS_BUCKET}下,创建文件夹{index_dir}和{jieba_dir}。将dict.txt, idf.txt上传到{jieba_dir}目录下。其中dict.txt, idf.txt可以在jieba的源码中找到。
-
修改sae的配置文件config.yaml:
# APP NAME name: zhihurewen # 定时采集 url后面的密码 url: /operation/fetch_latest?secret=311521
-
上传代码
注意
- 本地测试环境中,数据不会自动采集,可以手动启动采集当天的数据
"http://localhost:{port}/operation/fetch_latest?secret={secret}
- 本地测试环境,采集某一天的数据
"http://localhost:{port}/operation/fetch_before?date=20140808&secret={secret}
-
sae中有定时任务Cron。每隔1小时,会采集最新数据并更新,可在config.yaml的cron修改
-
TODO:
1. 性能优化 2. 搜索功能 (完成) 3. 非引用zhihu.com ? 4. 测试