スパンを含むtdの次のtdを見つけるにはどうすればよいですか?次のtdはスパンタグ付きのtdに基づいて検索します
html_text = """
<tr class="someClass">
<td> </td>
<td>A normal string</td>
<td class="someClass">10</td>
<td class="someClass">11</td>
<td class="someClass">12</td>
<td> </td>
</tr>
<tr class="someClass">
<td> </td>
<td>Non normal string <span style="font-size:10px">(with span)</span></td>
<td class="someClass">2 000</td>
<td class="someClass">2 100</td>
<td class="someClass">2 150</td>
<td> </td>
</tr>
"""
私は単にちょうどでそれを見つけるでしょう、その中に「通常の文字列」とtdの後にTDを取得するために:私はTDを見つける必要がある第二のTRで、しかし
a_normal_string = str(soup.find("td", text="A normal string").find_next('td'))
a_normal_string = re.findall(r'\d+', a_normal_string)
print a_normal_string #['10']
上の方法のNon normal string
のtdは機能しません。どのようにスパンを含むtdを処理するのですか?
最初に考えてみたのは、正規表現で見つけてa_nonnormal_string = str(soup.find("td", text=re.compile(r'A non normal string')).find_next('td'))
をコンパイルすることでしたが、これも適用されません。
これは2つのtrの例ですが、実際には数百のtrがあります。
素敵な、私はラムダをよく読んでする必要があります –