我正在编写一个脚本,用这个自定义类从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>;标记,start_td
就会调用SGMLParser并查找CLASS
属性。在
上面列出了在<td>
标记中为CLASS属性找到的所有值。
有没有什么方法可以动态地分配td
位(在start_td
)和{k
的值),以便使用optparse
动态分配,如下所示:
tagLister.py -t td -k class
而不是静态编码?我打算从命令行[重新]将这个类用于任何标记(例如<a>
,<div>
等)和相关属性(例如href
,id
等)。任何帮助都将不胜感激。在
一种选择是切换到
lxml.html
并使用XPath-结果将是一个列表。。。(而且由于XPath表达式只是一个字符串-它比玩弄类继承要容易得多)如果你必须使用stdlib-那么你可以用HTMLParser做类似的事情
^{pr2}$相关问题 更多 >
编程相关推荐