0
リンクテキストを含め、Tweet divのフルテキストを1つの戻り値として取得するためのxpathセレクタとは何ですか?リンクテキストを含むxpathでdivテキストを取得
//*[contains(@class, 'tweet-text')][2]/text()
上記の操作はリンクのないdivには有効ですが、ツイートにリンクが含まれている場合は最初の文字列セグメントが返されます。
リンクテキストを含め、Tweet divのフルテキストを1つの戻り値として取得するためのxpathセレクタとは何ですか?リンクテキストを含むxpathでdivテキストを取得
//*[contains(@class, 'tweet-text')][2]/text()
上記の操作はリンクのないdivには有効ですが、ツイートにリンクが含まれている場合は最初の文字列セグメントが返されます。
上記のコードはリンクのないdivでうまくいきますが、ツイートにリンクが含まれていると最初の文字列セグメントが返されます。
これは、その/text()
一部である - あなたは基本的にのみノードトップレベルのテキストの子に一致しています。要素内のすべてのテキストノードを一致させるには、任意のレベルで、あなたが行うことができます:ノードの「テキスト」の値を求めたときに、通常は自動的にHTMLパーサによって行わかかわら
//*[contains(@class, 'tweet-text')][2]//text()
これはある - それらはすべてに行きます子ノードは再帰的に「テキスト」値を取得し、それらを結合します。
In [1]: from lxml.html import fromstring
In [2]: html = """
...: <div>
...: div text here
...: <a href="https://google.com">link text</a>
...: </div>"""
In [3]: root = fromstring(html)
In [4]: root.xpath('//div/text()') # <- No text of the a element
Out[4]: ['\n div text here\n ', '\n']
In [5]: root.xpath('//div//text()') # <- We've got all the texts now
Out[5]: ['\n div text here\n ', 'link text', '\n']
In [6]: root.xpath("//div")[0].text_content() # <- but this would that for us
Out[6]: '\n div text here\n link text\n'
あなたがテストしているURLを共有することができます。
のPython +
lxml
パーサーを使用して、上記のすべてを実証?その情報であなたの質問を更新してください。 – eLRuLL