-1

の間からテキストを抽出しようとしています

</br></td>, <td class="first">TEXT_1a<br>TEXT_1b
                                </br></td>, <td class="first">TEXT_2a<br>TEXT_2b
                                </br></td>, <td class="first">TEXT_3a<br>TEXT_3b
                                </br></td>, <td class="first">TEXT_4a<br>TEXT_4b
                                </br></td>, <td class="first">TEXT_5a<br>TEXT_5b
                                </br></td>, <td class="first">TEXT_6a<br>TEXT_6b

BeautifulSoup (BS4) text = first_td.renderContents() trimmed_text = text.strip() print trimmed_text を使用してテキストを抽出しました。<tdただし、タグの後の最初のテキストしか取得しません。それにもかかわらず、できれば列(配列)でソートされた、タグ内のすべてのテキストを抽出したいと思います。BS を使用してうまくいかなかった後、Regex が最適だと思いました。ちょっとしたことですが、私は絶対的な正規表現のアマチュアです...

テキストをそこに出す方法はありますか?

4

1 に答える 1

0

tdタグ内に存在するすべてのテキストを抽出します。

>>> s = '''<td class="first">TEXT_1a<br>TEXT_1b
                                </br></td>, <td class="first">TEXT_2a<br>TEXT_2b
                                </br></td>, <td class="first">TEXT_3a<br>TEXT_3b
                                </br></td>, <td class="first">TEXT_4a<br>TEXT_4b
                                </br></td>, <td class="first">TEXT_5a<br>TEXT_5b
                                </br></td>, <td class="first">TEXT_6a<br>TEXT_6b'''
>>> soup = BeautifulSoup(s)
>>> [i.text.strip() for i in soup.select('td.first')]
['TEXT_1aTEXT_1b', 'TEXT_2aTEXT_2b', 'TEXT_3aTEXT_3b', 'TEXT_4aTEXT_4b', 'TEXT_5aTEXT_5b', 'TEXT_6aTEXT_6b']
于 2015-06-28T16:29:36.277 に答える