SimpleCD 山寨版的 VeryCD

LGPL
Python 查看源码»
Linux
2009-12-20
红薯

SimpleCD是什么?

  • 是山寨化VeryCD的全套工具,包括抓取脚本网站代码

谁需要使用SimpleCD?

  • 想保存VeryCD链接资源者:别镜像VeryCD了,用这个吧。

  • 想研究爬虫脚本和python语法者:其实写得挺烂的,勉强能用而已。

  • 想研究web.py+sqlite3网站架设的爱好者:说学习是抬举我了,一周以前我也既不懂web.py 又不懂sql数据库。

  • 想测试自己虚拟主机性能者:没错,毕竟是1G的数 据库,能跑而且能跑得顺畅的均非等闲主机

SimpleCD长啥 样子?

  • simplecd架设完毕的例子:http://www.simplecd.org

为什么用web.py?

  • 抓网站用的是python,用python系的框架能更好的整合

  • 比较了一下django和web.py,更喜欢web.py那种“用python写网站”,而不是django那 种“用django写网站”的风格。

为什么使用 sqlite做数据库?

  • 最开始是因为python自带,简单 易用

  • 现在是因为实际表现比mysql好10倍:http://obmem.com/?p=317

  • sqlite的弱点是高并发可能会锁死数据库,但是我已经找到解决方案,就是等什么时候有空研究一下怎么写代码。

其他

  • 我的个人主页,有源码的实现细节,欢迎来踩:http://obmem.com

  • 博客中 VeryCD相关: http://obmem.com/?tag=verycd

  • 更直观的架设攻略请参考视频: http://www.simplecd.org/static/tutorial.html

SimpleCD使用方法

1.需求:

所有可以架设web.py的地方,例如:

  • 一个VPS(Virtual Dedicated Server)(参考Xen和OpenVZ测试(附VPS推荐))

  • 一 个支持web.py的国外共享主机(例如dreamhost架设web.py攻略)

  • 一个支持web.py的国内共享主机(例如stdyun.com 架设web.py攻略)

推荐配置:

  • Xen VPS 需要至少768MB内存的Linux VPS

  • OpenVZ VPS 需要Burstable内存至少512MB内存的Linux VPS,基本内存可以小一点没问题。

内 存太少的解决方法:

  • 修改nginx/spawn-fcgi.sh中"-F 2"改为"-F 1",只使用一个守护进程

  • 重 新写一个资源占用较低的框架来存取sqlite3。sqlite3直接存取占内存不大。

  • 不要试图 用mysql来取代sqlite,mysql效率更低

本教程基于操作系统Ubuntu 9.04 由于玩VPS的都非善类,相信其他操作系统的架设都能自己解决

2.修改软件源

我们要用新软件,所以直接修改/etc/apt/sources.list 把其中的jaunty改为karmic,用9.10的软件源 :)

然后更新一下

apt-get update

接下来分别安装nginx,spawn-fcgi,和mercurial

apt-get install nginx
apt
-get install spawn-fcgi
apt
-get install mercurial

再接下来是easy_install的安装,以及安装web.py和flup

apt-get install python-setuptools
easy_install web
.py
easy_install flup

3. 简易架设攻略

下载源码

cd /var/www
hg clone https
://simplecd.googlecode.com/hg simplecd
cd simplecd
hg update deployment

接下来做一些基本的配置

#创建数据库
./fetchvc.py createdb

#nginx的配置文件(请根据视频进行相应修改)
cp nginx
/nginx.conf /etc/nginx/
cp nginx
/simplecd /etc/nginx/site-available/
ln
-s /etc/nginx/site-available/simplecd /etc/nginx/site-enabled/simplecd

#用spawn-fcgi开fcgi
nginx
/spawn-fcgi.sh

#开启nginx服务
/etc/init.d/nginx start

好了,大功告成,访问vps的地址看看,应该已经架设完毕了

4.simplecd的使用

一些数 据库的更新方法:

上一步中的数据库还是空的,必须下载数据库,数据库更新方法如下

./fetchvc.py feed #按照feed更新数据库
./fetchvc.py update #更新主页的前20页数据
./fetchvc.py fetch q=海猫 #在verycd搜索所有关于海猫的内容并更新到数据库
./fetchvc.py fetch TopicID #直接更新topicid
./fetchvc.py fetchall #更新全部数据库,建议还是不要尝试为好
./fetchvc.py fetch 1000-1001 #更新verycd的archives页面第1000页到1001页的内容

下载全数据库(截止2009.12.18)

eMule链接:

ed2k://%7Cfile%7Cverycd.sqlite3.db.lzma%7C233121378%7C0fd38cff1353e996576f9f3e9b8c65dd%7C

解压: lzma -d verycd.sqlite3.db.lzma

然后放入 simplecd目录即可

设置自动更新

想让simplecd自动和VeryCD保持同步?

试试看 default branch的scdd.py:

hg update default
python scdd
.py start

每隔15分钟看一下,如果成功的话应该已经有自动更新了

为什么simplecd.org的主页和deployment不一 致?

simplecd.org上有 些特殊的设置,所以我没有让它与本源代码同步,而是同步到另一个目录,作出一些调整,然后复制到目标目录。

要尝试新界面和新功能你可以试试看dev branch:

hg update dev

注意:最新的dev branch使用了mysql数据库,sqlite到mysql的转换可见conf.py的注释部分。

注意2*:mysql性能可能会极烂,如果有2G 以上内存那么可以考虑修改my.cnf至它默认的huge站的配置文件

加载中

评论(1)

yefe
yefe
我真不知道 simplecd 哪里好,大家可以看看 http://wwrr.org/ SimpleCD

暂无资讯

1
回答
感谢simplecd,感谢你的分享精神

这个一定要顶一下,先占楼层,有问题再问你,经常上simplecd,非常喜欢~

2012/11/22 13:33

没有更多内容

加载失败,请刷新页面

没有更多内容

落脚的地方

记录一些生活中去过的有趣网站

2014/09/23 11:43
59
1
30分钟3300%性能提升——python+memcached网页优化小记

转自:http://obmem.info/?p=717 本来我一直不知道怎么来更好地优化网页的性能,然后最近做python和php同类网页渲染速度比较时,意外地发现一个很简单很白痴但是我一直没发现的好方法(不得不...

2010/12/04 13:08
1K
3
在flask-sqlalchemy中使用分页

其实在使用中sqlalchemy和flask-sqlalchemy还是有点区别的的,sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系,flask-sqlalchemy中分页写的很明...

2014/01/30 01:31
6.5K
2
上有政策,下有对策——如何继续下载VeryCD资源

VeryCD死掉已经有一段时间了,不少zasver都表示遗憾。我曾经也感觉很遗憾,虽然说VeryCD慢,但是上面的无损资源在质和量上都是数一数二的。我刚开始听无损音乐时就是在VeryCD上找的资源,也就...

2014/04/13 18:44
1K
0
用python爬虫抓站的一些技巧总结

转自http://gae-django-cms.appspot.com/ 这些脚本有一个共性,都是和web相关的,总要用到获取链接的一些方法,再加上simplecd这 个半爬虫半网站的项目,累积不少爬虫抓站的经验,在此总结一...

2012/11/21 09:07
321
0
用python爬虫抓站的一些技巧总结

学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的验证码识别的脚本,本来想...

2013/08/07 15:00
746
3
[转]用python爬虫抓站的一些技巧总结

学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的验证码识别的脚本,本来想...

2014/03/26 15:37
239
0
给新手的免费资料

Ext.js 学习资料 下载地址:http://zhidao.baidu.com/question/446498141.html 每个网址中提供的下载链接不能保证期下载速度及当你下载时是否失效,使用下载链接中下载操作,或右击"使用迅雷下...

2014/06/04 11:21
563
2
python+memcached网页优化

针对curd,操作如下 1,查询数据(select),首先通过指定的Key查询(get)Memcache中间缓存层数据,如果存在相对应数据,则直接获取出数据结果,查询过程完全不需要查询数据库。如果不存在,则查...

2013/10/28 08:29
321
0
优秀的 Android 开源项目

优秀的 Android 开源项目

2015/04/06 22:17
1K
2

没有更多内容

加载失败,请刷新页面

返回顶部
顶部