题外话: 作为一个坚定的*nix系统使用者,我常常向我周围的人推荐使用L</wbr>inux/UNIX, 而他们通常都以不熟,不好用拒绝我,即使我答应帮他们装Linux系统</wbr>。他们总认为Linux难用,可是事实不是这样的</wbr>,给发展中国家使用的一百美元笔记本(OLPC)上就是 Linux</wbr>, 世界上最眩的操作系统 MacOSX 底下也是UNIX/BSD. 有时候 Linux/UNIX 缺少的就是一些日常应用的杀手级程序。实际上杀手应用甚至决定了系统选择: Apache 让很多人再也不用 Windows 架设服务器,iPod 让美国很多人转而投身苹果。同样,我觉得我们支持Linux的人或许可以</wbr>换一个角度,举出一些 Linux 能做的强大的酷的事情</wbr>,让更多的人了解这个系统,从而爱上这个系统。其实从我的角度看</wbr>,系统不酷,而是工作效率高,不过为了吸引一些用户</wbr>,我不得不从酷的角度去说服别人。因此我准备开一个专栏</wbr>,专讲在Linux下面可以做在Windows下做不到的酷事情</wbr>,希望有人因此喜欢上 Linux. 这个专栏的文章都不长,技术都不复杂,以吸引人为主。如果你想感受Linux, 网上现有的怎么装的教程很多,也可以用LiveCD, 不过那不是我这个专栏所能讲清楚的。我的主要目的是吸引对 Linux 没感觉的人到 Linux 平台 :)

好吧,先说我抓音乐的小例子。我来到美国之后</wbr>,感觉要融入美国文化,首要的就是融入潮流文化. 于是,我开始到网上找哪些音乐电影流行,我就拿下来看</wbr>。这个当然要被很多人鄙视说俗了,现在流行的是小众小资的东西了</wbr>。不过既然俗,咱也得俗的有技术含量是吧。一开始</wbr>,我每天看Google Music Trend, 看到新的歌我就下载,然后用文本文件存我下了哪些歌。因此</wbr>,第一步,我只需要一个浏览器。然后我就发现人工管理的缺陷的</wbr>,因此我就想自动从Google Music Trend 中把我的歌生成一个列表。在这一步,我使用了我需要一个Linux 命令叫 wget, 简单的说,

wget some_url

就可以把一个网页或者资源下载到自己机器上。

好,我们先试验这个命令:

wget http://www.google.com/trends/music -O music.list<br />

-O 表示另存为后面的文件,简单吧。

然后,我们再学一个命令叫cat. cat 不是小猫,是把文件的内容输出到屏幕. cat 后面可以接多个文件,具体可以用 cat –help 看帮助。这个地方,我们用 cat filename 输出文件。`题外话: 作为一个坚定的*nix系统使用者,我常常向我周围的人推荐使用L</wbr>inux/UNIX, 而他们通常都以不熟,不好用拒绝我,即使我答应帮他们装Linux系统</wbr>。他们总认为Linux难用,可是事实不是这样的</wbr>,给发展中国家使用的一百美元笔记本(OLPC)上就是 Linux</wbr>, 世界上最眩的操作系统 MacOSX 底下也是UNIX/BSD. 有时候 Linux/UNIX 缺少的就是一些日常应用的杀手级程序。实际上杀手应用甚至决定了系统选择: Apache 让很多人再也不用 Windows 架设服务器,iPod 让美国很多人转而投身苹果。同样,我觉得我们支持Linux的人或许可以</wbr>换一个角度,举出一些 Linux 能做的强大的酷的事情</wbr>,让更多的人了解这个系统,从而爱上这个系统。其实从我的角度看</wbr>,系统不酷,而是工作效率高,不过为了吸引一些用户</wbr>,我不得不从酷的角度去说服别人。因此我准备开一个专栏</wbr>,专讲在Linux下面可以做在Windows下做不到的酷事情</wbr>,希望有人因此喜欢上 Linux. 这个专栏的文章都不长,技术都不复杂,以吸引人为主。如果你想感受Linux, 网上现有的怎么装的教程很多,也可以用LiveCD, 不过那不是我这个专栏所能讲清楚的。我的主要目的是吸引对 Linux 没感觉的人到 Linux 平台 :)

好吧,先说我抓音乐的小例子。我来到美国之后</wbr>,感觉要融入美国文化,首要的就是融入潮流文化. 于是,我开始到网上找哪些音乐电影流行,我就拿下来看</wbr>。这个当然要被很多人鄙视说俗了,现在流行的是小众小资的东西了</wbr>。不过既然俗,咱也得俗的有技术含量是吧。一开始</wbr>,我每天看Google Music Trend, 看到新的歌我就下载,然后用文本文件存我下了哪些歌。因此</wbr>,第一步,我只需要一个浏览器。然后我就发现人工管理的缺陷的</wbr>,因此我就想自动从Google Music Trend 中把我的歌生成一个列表。在这一步,我使用了我需要一个Linux 命令叫 wget, 简单的说,

wget some_url

就可以把一个网页或者资源下载到自己机器上。

好,我们先试验这个命令:

wget http://www.google.com/trends/music -O music.list<br />

-O 表示另存为后面的文件,简单吧。

然后,我们再学一个命令叫cat. cat 不是小猫,是把文件的内容输出到屏幕. cat 后面可以接多个文件,具体可以用 cat –help 看帮助。这个地方,我们用 cat filename 输出文件。`

cat music.list

怎么样,cat 输出了一个HTML的文件吧。这个HTML文件就是你的浏览器看到的. 然后你要说了,我怎么把这个html文件变成一个格式整齐的列表呢。不着急,下回我告诉你,这次先打一段天书一样的代码(这是一整行内容,注意第一行结束后有一个空格):

cat music.list |tr "\n" " "|egrep -o "song\">[^<]*" |tr ">" "\t"|cut -f 2|sort|uniq >mylist.new

好了,你就发现mylist.new 中全是格式正确的歌曲名了。这段天书怎么理解您无须担心,你可以发现原来在windows下需要copy 20次得到的文本文件一行命令就得到了。那么,学这段天书要多久呢?只要你常来看我的专栏,看三次,每次十分钟,肯定能理解。如果一生做一次,从头学这个天书效率当然不如手工,不过要是天天赶潮流,您就需要考虑用这个命令了。

好了,最后贴出一个喜欢听王小峰推荐歌曲的人要用的一个下载脚本,每次三表同学新歌上线,你轻轻一敲回车,歌曲全到你硬盘,多让人羡慕啊(当然,这个别太传,本来就是偷偷通过他的xml 发现歌曲链接的,传过了三表要发火了)。这个脚本是python 写的,但是因为windows下没有wget, 所以是Linux 专用的 :) 快用这个让美女/闺蜜/帅哥羡慕你吧

``题外话: 作为一个坚定的*nix系统使用者,我常常向我周围的人推荐使用L</wbr>inux/UNIX, 而他们通常都以不熟,不好用拒绝我,即使我答应帮他们装Linux系统</wbr>。他们总认为Linux难用,可是事实不是这样的</wbr>,给发展中国家使用的一百美元笔记本(OLPC)上就是 Linux</wbr>, 世界上最眩的操作系统 MacOSX 底下也是UNIX/BSD. 有时候 Linux/UNIX 缺少的就是一些日常应用的杀手级程序。实际上杀手应用甚至决定了系统选择: Apache 让很多人再也不用 Windows 架设服务器,iPod 让美国很多人转而投身苹果。同样,我觉得我们支持Linux的人或许可以</wbr>换一个角度,举出一些 Linux 能做的强大的酷的事情</wbr>,让更多的人了解这个系统,从而爱上这个系统。其实从我的角度看</wbr>,系统不酷,而是工作效率高,不过为了吸引一些用户</wbr>,我不得不从酷的角度去说服别人。因此我准备开一个专栏</wbr>,专讲在Linux下面可以做在Windows下做不到的酷事情</wbr>,希望有人因此喜欢上 Linux. 这个专栏的文章都不长,技术都不复杂,以吸引人为主。如果你想感受Linux, 网上现有的怎么装的教程很多,也可以用LiveCD, 不过那不是我这个专栏所能讲清楚的。我的主要目的是吸引对 Linux 没感觉的人到 Linux 平台 :)

好吧,先说我抓音乐的小例子。我来到美国之后</wbr>,感觉要融入美国文化,首要的就是融入潮流文化. 于是,我开始到网上找哪些音乐电影流行,我就拿下来看</wbr>。这个当然要被很多人鄙视说俗了,现在流行的是小众小资的东西了</wbr>。不过既然俗,咱也得俗的有技术含量是吧。一开始</wbr>,我每天看Google Music Trend, 看到新的歌我就下载,然后用文本文件存我下了哪些歌。因此</wbr>,第一步,我只需要一个浏览器。然后我就发现人工管理的缺陷的</wbr>,因此我就想自动从Google Music Trend 中把我的歌生成一个列表。在这一步,我使用了我需要一个Linux 命令叫 wget, 简单的说,

wget some_url

就可以把一个网页或者资源下载到自己机器上。

好,我们先试验这个命令:

wget http://www.google.com/trends/music -O music.list<br />

-O 表示另存为后面的文件,简单吧。

然后,我们再学一个命令叫cat. cat 不是小猫,是把文件的内容输出到屏幕. cat 后面可以接多个文件,具体可以用 cat –help 看帮助。这个地方,我们用 cat filename 输出文件。`题外话: 作为一个坚定的*nix系统使用者,我常常向我周围的人推荐使用L</wbr>inux/UNIX, 而他们通常都以不熟,不好用拒绝我,即使我答应帮他们装Linux系统</wbr>。他们总认为Linux难用,可是事实不是这样的</wbr>,给发展中国家使用的一百美元笔记本(OLPC)上就是 Linux</wbr>, 世界上最眩的操作系统 MacOSX 底下也是UNIX/BSD. 有时候 Linux/UNIX 缺少的就是一些日常应用的杀手级程序。实际上杀手应用甚至决定了系统选择: Apache 让很多人再也不用 Windows 架设服务器,iPod 让美国很多人转而投身苹果。同样,我觉得我们支持Linux的人或许可以</wbr>换一个角度,举出一些 Linux 能做的强大的酷的事情</wbr>,让更多的人了解这个系统,从而爱上这个系统。其实从我的角度看</wbr>,系统不酷,而是工作效率高,不过为了吸引一些用户</wbr>,我不得不从酷的角度去说服别人。因此我准备开一个专栏</wbr>,专讲在Linux下面可以做在Windows下做不到的酷事情</wbr>,希望有人因此喜欢上 Linux. 这个专栏的文章都不长,技术都不复杂,以吸引人为主。如果你想感受Linux, 网上现有的怎么装的教程很多,也可以用LiveCD, 不过那不是我这个专栏所能讲清楚的。我的主要目的是吸引对 Linux 没感觉的人到 Linux 平台 :)

好吧,先说我抓音乐的小例子。我来到美国之后</wbr>,感觉要融入美国文化,首要的就是融入潮流文化. 于是,我开始到网上找哪些音乐电影流行,我就拿下来看</wbr>。这个当然要被很多人鄙视说俗了,现在流行的是小众小资的东西了</wbr>。不过既然俗,咱也得俗的有技术含量是吧。一开始</wbr>,我每天看Google Music Trend, 看到新的歌我就下载,然后用文本文件存我下了哪些歌。因此</wbr>,第一步,我只需要一个浏览器。然后我就发现人工管理的缺陷的</wbr>,因此我就想自动从Google Music Trend 中把我的歌生成一个列表。在这一步,我使用了我需要一个Linux 命令叫 wget, 简单的说,

wget some_url

就可以把一个网页或者资源下载到自己机器上。

好,我们先试验这个命令:

wget http://www.google.com/trends/music -O music.list<br />

-O 表示另存为后面的文件,简单吧。

然后,我们再学一个命令叫cat. cat 不是小猫,是把文件的内容输出到屏幕. cat 后面可以接多个文件,具体可以用 cat –help 看帮助。这个地方,我们用 cat filename 输出文件。`

cat music.list

怎么样,cat 输出了一个HTML的文件吧。这个HTML文件就是你的浏览器看到的. 然后你要说了,我怎么把这个html文件变成一个格式整齐的列表呢。不着急,下回我告诉你,这次先打一段天书一样的代码(这是一整行内容,注意第一行结束后有一个空格):

cat music.list |tr "\n" " "|egrep -o "song\">[^<]*" |tr ">" "\t"|cut -f 2|sort|uniq >mylist.new

好了,你就发现mylist.new 中全是格式正确的歌曲名了。这段天书怎么理解您无须担心,你可以发现原来在windows下需要copy 20次得到的文本文件一行命令就得到了。那么,学这段天书要多久呢?只要你常来看我的专栏,看三次,每次十分钟,肯定能理解。如果一生做一次,从头学这个天书效率当然不如手工,不过要是天天赶潮流,您就需要考虑用这个命令了。

好了,最后贴出一个喜欢听王小峰推荐歌曲的人要用的一个下载脚本,每次三表同学新歌上线,你轻轻一敲回车,歌曲全到你硬盘,多让人羡慕啊(当然,这个别太传,本来就是偷偷通过他的xml 发现歌曲链接的,传过了三表要发火了)。这个脚本是python 写的,但是因为windows下没有wget, 所以是Linux 专用的 :) 快用这个让美女/闺蜜/帅哥羡慕你吧

`` print g

a="wget \""+g+"\""

os.popen(a)

注意: 最后三行是有缩进的。可以把这个存成 a.py, 然后 chmod +x a.py. 然后执行 ./a.py 具体的原理我下次讲。如果有问题,请留言。预祝你抓取所有王小峰歌曲成功。

课后作业:

  1. 练习用wget 抓一下 baidu 的500个金曲, 链接是: http://list.mp3.baidu.com/topso/mp3topsong.html

  2. 通过cat 命令研究一下baidu 的 html 和 Google 的 html. 看看哪家的让你觉得舒服. 下节课我们继续讲怎么处理这两个HTML.

下节课预告:1. 那段天书的原理是什么 2. 我怎么抓baidu 的流行榜单

过几天等有时间我还会给大家介绍优盘上的Linux, 光盘上的Linux 和最酷的Linux XGL桌面 还有给基督徒用的Linux 和给学前儿童用的Linux. 其实Linux远比一般人想像的简单而且酷。

本专栏欢迎投稿,暂无稿费。