Crane
Table_bottom

Search
Loading
Table_bottom

分类
Table_bottom

随机文章
Table_bottom

标签云
Table_bottom

最新评论
Table_bottom

链接
Table_bottom

功能
Table_bottom

使用wget做网站镜像

记得以前在网上看到一个好网站的时候,因为那时上网时间少,就想着把它整个抓下来,存到自己硬盘上,想什么时候看就什么时候看,那多爽。记忆中那时用的软件就是webzip了,但是这家伙是个共享版,如果你用的不是什么什么特殊版本的话,那么这个家伙是会有限制的,功能上的限制忘了,记得的是好像它会插广告在网页内容里面,这实在是极不爽的一件事。

现在虽然上网的时候多了,要查资料的话也能随时上网查,看到好的站也能随时打个书签收藏(比如好用的用tag管理书签的delicious,书签再多也不怕),免得以后要再来看。但是又发现了这样的问题,比如说我非常喜欢某个家伙的博客,但这个家伙的博客访问比较慢,每开个页面都要等好长时间,我就想把它全部弄到本地来;或者说遇到了这样的情况,看到这样一个网站(地址),就是一本书的html版。于是想把它整个保存到本地来,这样看起来就方便了,不用每次看书都跑到人家网站去,而且这个世界,没准今天网上还找得到的资源下一分钟就没了,所以想把看到的好东西就保存起来。

其实不用webzip这些看起来很强大的软件,我们有一个命令行下的软件,短小精悍,功能强大,工作稳定,它就是wget(一个linux下的软件,不过windows下装cygwin包的话也能使用),放心,不要以为它是命令行的就很挫,它还断点续传呢,这次跑了一半关机了,没关系下次还能接着干活,只要给它个 -c  参数就行了。

要做网站镜像用wget只要3个参数就搞定了,所以就只需要打这样一条命令:

wget -mkL $URL
其中参数意义:
m --mirror 做镜像的意思
k --convert-links 把链接变成适合本地阅读的形式
L --relative只抓取与本网站相关的链接,不会因为出现别的网站的链接而一直追踪抓下去。

$URL 要抓取的网站的地址

这三个都是必要的参数,当然还有其它的参数可以实现相关功能,比如使用 -O 指定输出文件名字(默认是网站url命名),网络状况不好的话可以使用 -t NUMBER 或完整形式 --tries=NUMBER,其中NUMBER表示重试次数,0表示无限,这样就不怕网络不好异常中断了。

 敲好命令,一回车,就看到wget在努力的干活了,默认是输出详细信息,可以看到每个文件的下载进度。

BT时代正在结束?

最近陆续看到消息,海盗湾(the pirate bay)在网站上写了这样一段话

TPB has decided that there is no need to run a tracker anymore, so it will remain down! It's the end of an era.

我们认为没有必要再维护Tracker服务器了,它不会再上线了!它的时代已经结束了。

海盗湾关闭了tracker服务器,立即我们也看到Mininova也在一夜之间删掉了服务上近一百万的种子文件,以后只有通过审查的出版商才可以上传。

想想我们的BT下载有多爽,有他们这样的网站做种子储存索引的服务,想要什么一搜之间都能找到种子文件,然后下载相应的torrent文件。接着,用一个BT下载客户端软件,打开这个文件。这时,客户端软件就会根据torrent文件中的网址,自动连接Tracker服务器,从它那里接收到其他正在下载该文件的人的网址名单。下一步,软件就一一与名单上的网址取得联系,从他们那里获取文件的片段,直到整个下载完成。

但是随着tracker服务器的关闭,Mininova删除种子文件,这些东西一下子全成明日黄花了,而且也说不准其它的torrent索引网站会坚持到什么时候。版权问题始终是永远的痛,海盗湾已经经历了几年的官司,曾经受到政府,网络运营商的重重封锁,今年尤其多灾多难,但海盗湾依然坚定的提供服务,像他们这种为了信念坚持的人,他们不会放弃的,只会换个方式重新来战斗。就像他们说的那样,他们认为有更好的技术可以实现下载。

为了比较先来看一下BT下载,从上面的过程可以看到,tracker服务就是整个BT下载的中心,是整个BT下载的灵魂,没有了tracker服务器,所有的BT下载软件都成了瞎子,不知 道到什么地方去找文件,找谁去要文件。因而tracker服务器也是版权组织打击的重点,因为tracker服务器是公开的,是露在人眼前的靶子,只要 tracker服务器倒了,BT下载也就完了。

没有了中心的tracker,还能下载不?或者说去中心化的下载模式应该是什么样的?

事实上,有“点对点”的模型,2002年,纽约大学的两个教授Petar Maymounkov和David Mazières发表了一篇论文,提出了一种真正去中心化的“点对点”下载模型,他们把它叫做Kademlia方法。Emule率先在软件中支持这种方法,KAD网络就是这样来的。到了2005年,BT软件也开始跟进了。目前,所有主流的BT下载客户端软件都支持这种方法。在BT下载中,这被叫做DHT协议(Distributed hash table,分布式哈希表)。

这种方式应该是这样工作的(可能有些东西还是不清楚,具体可以参考上面给的wikipedia的内容)

每一台加入BT下载的计算机,都被称为一个节点(node),有一个自己的ID。这个ID是一个哈希函数值,通过对要分享的文件内容或它的元数据进 行哈希运算而得到。这就是说,如果两台计算机正在下载同一个文件,那么它们的ID应该是彼此相似的。于是,每一台计算机就通过寻找与自己相似的ID,来找 到自己可以与之交换数据的其他节点。

DHT协议的另一个巧妙之处在于,每一台计算机只保留自己附近的一部分节点信息。因此,为了得到更多的节点信息,就必须采用接龙方式,在一个个节点 之间跳跃,逐步得到全网的节点分布图。这种信息获取方式,就保证了整个网络没有单个的中心,即使一个节点下线了,依然可以通过其他节点来获取文件,因此也 就不需要Tracker服务器来告诉你,其他节点在什么地方了。

所以这些资源并不是因为没有了tracker服务器而没有办法找到,因为有DHT网络的存在,这是一种分布式tracker的方式,不会再有tracker服务器这种中心的东西,因而也不容易被打压,但是一种更灵活的方式,emule一直是这样做的,不是很成功吗?

话说枪打出头鸟,好多tracker服务提供商被追杀,所以还是这种方布式的工作方式好,永远不会受到打压,因为没有一个中心,或者说人人都是中心,只要还有人在用,就会有资源的流通。

就像emule提供的专用ed2k链接一样,现在在海盗湾网站可以看到这样一种链接

magneturl

看那个磁铁样的链接内容像这样

magnet:?xt=urn:btih:8f69649f7dd159ebb90432df19d14bf7ce7fa719&dn=My+Friends+Tigger+and+Pooh%3A+Bedtime+with+Pooh+-+DVD+1+-+dublat&tr=http%3A%2F%2Fdenis.stalker.h3q.com%3A6969%2Fannounce

大概是这么个意思:

magnet:协议名。

xt:exact topic的缩写,表示资源定位点。BTIH(BitTorrent Info Hash)表示哈希方法名,这里还可以使用SHA1和MD5。这个值是文件的标识符,是不可缺少的。

dn:display name的缩写,表示向用户显示的文件名。这一项是选填的。

tr:tracker的缩写,表示tracker服务器的地址。这一项也是选填的。

这样做显而易见的好处是,整个下载网络的可靠性提高了,每一个节点都是可以被替代的。另一个好处是,审查变得更困难了,因为每次下载的路径都是不一样的,而且每 个节点都是动态变化的,导致实际上无法追踪谁在下载。此外,magnet URI只是一个字符串,非常容易传播,根本无法禁止。

难道说这种分布式的才是下载的未来?

纪念Opera Mini 4.0

2009年11月21号0:45分,当我习惯性的拿出手机来上网的时候,Opera Mini 却提示我说中国用户请升级至Opera Mini中国版,更快更稳定,我用的是4.0的国际版本,为了自由上网,我就喜欢这个版本,现在在某种力量下,在某种程度上,我们却连自由选择软件或者说软件

继续阅读