我正在编写一个脚本以使用此自定义类从 HTML 文档(在本例中为 Nagios 状态页面)中提取一些字符串/数据:
## tagLister.py
from sgmllib import SGMLParser
class TAGLister(SGMLParser):
def reset(self):
SGMLParser.reset(self)
self.urls = []
def start_td(self, attrs):
CLS = [ v for k, v in attrs if k == 'class' ]
if CLS:
self.urls.extend(CLS)
每当找到 <td> 标记时,SGMLParser 就会被调用start_td
并查找该CLASS
属性。
>>> import urllib, tagLister
>>> usock = urllib.urlopen("http://www.someurl.com/test/test_page.html")
>>> parser = tagLister.TAGLister()
>>> parser.feed(usock.read())
>>> for url in parser.urls: print url
>>> ...
上面列出了在<td>
标签中找到的所有CLASS属性值。有没有办法动态分配td
位(in start_td
)和class
(作为 的值k
),以便使用optparse
,它可以动态分配,如下所示:
tagLister.py -t td -k class
而不是静态编码?我打算将此类用于命令行中的任何标记(例如<a>
等<div>
)和相关属性(例如href
等id
)。任何帮助将不胜感激。