批量下载 RFC 文档【练手】

1.下载 RFC top 50
2.下载 top 50 对应的中文文档

RFC 的官方网站是:
http://www.ietf.org/rfc.html

top 50 出自下面这个链接:
http://www.faqs.org/rfcs/

首先获取到 "index",curl/wget 均可:

$ curl http://www.faqs.org/rfc-pop1.html -o rfc-origin
$ w3m -dump  http://www.faqs.org/rfc-pop1.html > rfc-origin


接下来就是处理该文件了,通过 vim Shift+v -> d 删除不需要的部分:

<li><a href="/rfcs/rfc821.html">RFC 821 – Simple Mail Transfer Protocol</a></li>
<li><a href="/rfcs/rfc2119.html">RFC 2119 – Key words for use in rfcs to Indicate Requirement Levels</a></li>
<li><a href="/rfcs/rfc2396.html">RFC 2396 – Uniform Resource Identifiers (URI): Generic Syntax</a></li>

还是 Vim,Ctrl+v 后变成:

rfc821.html">RFC 821 – Simple Mail Transfer Protocol</a></li>
rfc2119.html">RFC 2119 – Key words for use in rfCs to Indicate Requirement Levels</a></li>
rfc2396.html">RFC 2396 – Uniform Resource Identifiers (URI): Generic Syntax</a></li>

$ sed -i 's/rfc.*RFC//' rfc-origin |sed -i 's/\ //' 
821 – Simple Mail Transfer Protocol</a></li>
2119 – Key words for use in rfcs to Indicate Requirement Levels</a></li>
2396 – Uniform Resource Identifiers (URI): Generic Syntax</a></li>

$ sed -i 's/<.*//' rfc-origin

出来的就是 RFC top 50。要批量下载的话,awk 获取其中的数字就可以了。

$ cat num-rfc.txt  | head -n 3
821
2119
2396

$ cat download-rfc.sh
#!/bin/bash
for num in $(cat num-rfc.txt)
do
wget http://www.rfc-editor.org/rfc/pdfrfc/rfc${num}.txt.pdf
done

获取中文文档类似:

$ cat zh-rfc.sh
#!/bin/bash
for num in $(cat num-rfc.txt)
do
wget http://files.sydi.org/man/rfc/RFC${num}.txt
done

如果要获取全部的中文文档:

$ wget -r -dn http://files.sydi.org/man/rfc/