从HTML表格中提取数据
从HTML表格中提取数据
我正在寻找一种在Linux shell环境中从HTML中获取特定信息的方法。
我感兴趣的部分如下:
Tests | Failures | Success Rate | Average Time | Min Time | Max Time |
---|---|---|---|---|---|
103 | 24 | 76.70% | 71 ms | 0 ms | 829 ms |
我想将其存储在shell变量中,或者从上述HTML中提取的键值对中输出。例如:
Tests : 103 Failures : 24 Success Rate : 76.70% 依此类推..
目前我能做的是创建一个Java程序,使用sax解析器或html解析器(如jsoup)来提取这些信息。
但是在这里使用Java似乎有点多余,因为你要执行的"包装"脚本中要包含可运行的jar文件。
我相信肯定有"shell"语言可以实现同样的功能,比如Perl、Python、Bash等。
我的问题是我对这些语言一窍不通,有人能帮我解决这个"相当简单"的问题吗?
快速更新:
我忘了提到我在.html文档中有更多的表格和更多的行,对此表示抱歉(早上太匆忙了)。
更新2:
尝试安装BeautifulSoup,因为我没有root权限:
$ wget http://www.crummy.com/software/BeautifulSoup/bs4/download/4.0/beautifulsoup4-4.1.0.tar.gz $ tar -zxvf beautifulsoup4-4.1.0.tar.gz $ cp -r beautifulsoup4-4.1.0/bs4 . $ vi htmlParse.py #(将代码从Tichodromas的答案中粘贴进去,只是为了确保这是我粘贴的内容) $ 运行文件(python htmlParse.py)
错误:
$ python htmlParse.py Traceback (most recent call last): File "htmlParse.py", line 1, in ? from bs4 import BeautifulSoup File "/home/gdd/setup/py/bs4/__init__.py", line 29 from .builder import builder_registry ^ SyntaxError: invalid syntax
更新3:
运行Tichodromas的答案会出现以下错误:
Traceback (most recent call last): File "test.py", line 27, in ? headings = [th.get_text() for th in table.find("tr").find_all("th")] TypeError: 'NoneType' object is not callable
有什么想法吗?