2017-07-09 7 views
1

興味のあるHTMLドキュメントの各ページで必要な情報は、そのタグの直前のタグではなく、前のタグで一意に定義されています、それはそれは私がこのPython:HTMLParserでサブタグのデータを処理する方法

def handle_starttag(self, tag, attrs): 
    self.inLink = False 
    if tag == 'div': 
     for name, value in attrs: 
      if name == 'class' and value == 'unique': 
       self.inLink = True 
       self.lasttag = tag 
    if tag == 'span': 
     if self.lasttag == 'div' and self.inLink: 
      self.inlink = True 
      self.lasttag = tag 

でのhandle_starttagメソッドをオーバーライドが、それは動作しません、私のHTMLParserクラスでは

<div class="unique"> 
<span class="not unique> 
data I want to get 
</span> 
</div> 

ようになりますです。なぜこれは私の開始タグをclass = "unique"のdivタグ内の任意のスパンタグに設定しないのですか?これは一般にどのように行われますか?

+0

ないあなたの質問に直接答え:ほとんどの人が、さまざまな理由から、直接、まったくHTMLParserクラスを使用します。私たちのほとんどは、BeautifulSoup、セレン、治療などの様々な製品の1つ以上を使用しています。 –

+0

洞察をいただきありがとうございます - 私はそれをより多く研究してきました。私は実際にこの問題を解決するために管理し、以下の回答を投稿しました。 –

+0

ようこそ。そしておめでとう。誰もがそれをすることはできません。最近行われたすべての掻き取りのためにそれを行うことを想像してください。 –

答えて

1

次の手順を実行してこの問題を解決するために管理:

def handle_starttag(self, tag, attrs): 
     self.inLink = False 
     if tag == 'div': 
      for name, value in attrs: 
       if name == 'class' and value == 'unique': 
        self.inLinkReady = True 
     if tag == 'span': 
      if self.inLinkReady: 
       self.inLink = True 
       self.lasttag = tag 
       self.inLinkReady = False 

:)

関連する問題