このカスタム クラスを使用して、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
>>> ...
上記は、 CLASS属性の<td>
タグで見つかったすべての値を示しています。ビット (in ) と(の値として)を動的に割り当てる方法はありますか?td
start_td
class
k
optparse
tagLister.py -t td -k class
静的にコーディングするのではなく?コマンドラインから任意のタグ (例<a>
:<div>
など) および関連する属性 (例: など) にhref
このクラスを [再] 使用するつもりです。id
どんな助けでも大歓迎です。