.text と get_text() の違い
結論は:
1. パラメーターなしで get_text() を呼び出すことは .text と同等であり、違いはありません。
2. ただし、get_text は動作を変更するためのさまざまなキーワード パラメータ (セパレータ、ストリップ、タイプ) もサポートしているため、結果をより柔軟に制御したい場合は、get_text を使用できます。
3. 視覚的に読むには、.text の方が洗練されているようです。
公式ソースコードの実装:
@property
def stripped_strings(self):
for string in self._all_strings(True):
yield string
def get_text(self, separator=u"", strip=False,
types=(NavigableString, CData)):
"""
Get all child strings, concatenated using the given separator.
"""
return separator.join([s for s in self._all_strings(
strip, types=types)])
getText = get_text
text = property(get_text)
参考:https://blog.csdn.net/f156207495/article/details/78074240
.text と .string の違いについては、例を参照してください。
1、<td>some text</td>
2、<td></td>
3、<td><p>more text</p></td>
4、<td>even <p>more text</p></td>
.string の結果は次のようになります。
1、some text
2、None
3、more text
4、None
.text の結果は次のようになります。
1、some text
2、
3、more text
4、even more text
結論は:
1. 1行目でタグtdが指定されている場合、サブタグはなくテキストがあり、両方の戻り結果は同じで、どちらもテキストです
2. 2 行目で、指定されたタグ td にサブタグもテキストもない場合、.string は None を返し、.text は空を返します。
3. 3 行目では、指定されたタグ td にサブタグが 1 つだけあり、テキストがサブタグの間にのみ表示される場合、どちらも同じ結果を返し、どちらもサブタグ内のテキストを返します。
4. 4 行目は、最も重要な違いです。指定されたタグ td にサブタグがあり、親タグ td とサブタグ p にそれぞれテキストが含まれている場合、この 2 つの戻り結果には大きな違いがあります。
.string は空を返します。テキストの数 >= 2 であるため、string はどれを取得するかわかりません。
.text は 2 つのテキストを連結したものを返します。