Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

接上一篇 《利用 Bash 脚本编写自动抓取学校图书馆借阅信息的爬虫 Part 1》

抓下来的数据是一大堆的 HTML 标签夹杂着无用的玩意,那么就需要把有用的过滤出来。在 Bash 环境下就是需要利用一些命令来过滤掉没用的字符。

我这里用到三个命令来过滤

sed	#	sed是非交互式的编辑器,它读取文件到自己的缓冲区然后再作修改。
    #	默认情况下,所有的输出行都被打印到屏幕上。[1]

awk	#	awk是一个强大的文本分析工具,它把文件逐行的读入,以空格为默认分隔
    #	符将每行切片,切开的部分再进行各种分析处理。[2]

tr	#	可以将 tr 看作为 sed的(极其)简化的变体:它可以用一个字符来替换
    #	另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。
    #	这就是所有 tr所能够做的。 [3]

sed 命令在我的脚本里用得最多,通过输入一组符合 sed 格式的命令来达到过滤文本内容。sed 使用 命令/匹配/选项 的格式来作为一条命令,这里只涉及到我用到的命令。

#在所有“<td”前面换行
#准确点来说是把所有的“<td”换成“\n<td”,以此达到换行的目的
cat file | sed 's/<td/\n<td/g'

#删掉第 1-107 行
cat file | sed '1,107d'
cat file | sed '480,$d'

awk 命令我只用来格式化输出一些数据。例如可以不替换直接用html里的一些符号分割字段。

评论