Python搭建BT资源搜索站

通过前面四篇文章,我们已经采集到了N多BT种子,并且已经将种子中包含的一些信息保存在Mongo数据库中,接下来就是如何将Mongo中的数据通过WEB服务器提供给搜索引擎,提供给一些浏览者。即,如何使用Python搭建一个WEB站点了。

首先我之前的项目均采用Bottle这个Python框架,这次依然不例外。这个框架的好处只有一个:足够简单。使用Bottle启动一个Web Server是一件非常简单的事,文件保存成app.py:

from bottle import Bottle, run

app = Bottle()

if __name__ == "__main__":

#命令行交互模式

import sys

port = int(sys.argv[1] if len(sys.argv) > 1 else 8888)

run(app, host='0.0.0.0', port=port, reloader=True)

当然bottle.py这个文件需要从官方下载到当前目录,这样才可以正常import。

执行脚本python app.py启动了Web Server后,默认的端口号为8888,但此时在浏览器输入http://localhost:8888会返回一个“Not found: '/'”的404错误。这是因为咱们只是启动了一个空白的Web Server,但没有设置对应的Url route。

设置一个经典的首页显示Hello world的route:

from bottle import Bottle, run

app = Bottle()

@app.get('/')

def index():

return 'Hello world'

if __name__ == "__main__":

# Interactive mode

import sys

port = int(sys.argv[1] if len(sys.argv) > 1 else 8888)

run(app, host='0.0.0.0', port=port, reloader=True)

这时候再执行python app.py,在浏览器访问http://localhost:8888/就可以看到『Hello world』的字样了。

转载于:https://my.oschina.net/mickelfeng/blog/1606418

作为最早在国内研究和实践DHT爬虫的人,我的灵感是来自芬兰Helsinki大学的这篇论文: Real-World Sybil Attacks in BitTorrent Mainline DHT 英文好的同学应该很容易读懂,跟我写的不到300行的爬虫代码大致原理一样。初次接触DHT网络的可以结合我之前的文章阅读,或者拜读Kevin Lynx的博客。所以具体原理在这里就不再阐述了。 手撕包菜一开始只是为了纯粹的技术研究,没有去想这个搜索引擎能给网民带来什么样的福利。当时采集了大量的数据,发现有一半以上的资源为限级内容,于是试图去对资源进行分类并且做了很多这方面的工作。譬如,基本上能通过一套规则能筛选出限级内容,对资源进行分类,如果是视频还能匹配出是哪一部影片。可惜,这些工作我主观上认为对生活应用并没有太大价值,于是就放弃了深入的研究。或许是因为网民使用此类搜索引擎大部分都是具有明显的目的性。 手撕包菜经历了多次点技术变更开源版本使用了django网框架重写,之前是Flask,再早期是tornado。电影FM也是使用tornado,后来发现tornado并不适用于任何场景。以内容为王的网还是django比较擅长,只是入门时间比其他框架都较长。早期数据库采用了MongoDB,因为配合Python读写数据很方便,也不用关注数据结构,搜索功能采用自带的关键词搜索,不过后来随着资源数量增加,性能也明显跟不上。今年换了WiredTiger引擎,自带的fulltext search还是不给力。另外Amazon的cloudsearch是个坑,土豪可以考虑,性能真的很不错,就是比较贵。最后还是搭建一个SphinxSearch吧,数据库也换成MySQL(MyISAM引擎),配合起来也很方便。Sphinx创建全文索引的速度很给力,官方的自评也很高,我自己测试1000w的资源(大概3GB),1分钟左右就索引完毕。不信,大家可以自测一下。 标签:ssbc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值