我希望以下列格式捕获 WORD
一词 This is what I want.
:
<div id="message1">
<div class="message2">
<strong>WORD</strong> This is what I want.<br/>
</div>
</div>
我尝试的是:
import requests
from lxml import html
cont=session.get('http://mywebsite.com').content
tree=html.fromstring(cont)
word=tree.xpath('//div[@class="message2"]/strong')
sentence=tree.xpath('//div[@class="message2"]/br')
print word
print sentence
我没有打印任何内容!
答案 0 :(得分:2)
我发现xpath helper非常适合解决像这样的问题
word = tree.xpath('//div[@class="message2"]/strong/text()')[0]
sentence = tree.xpath('//div[@class="message2"]/strong/following-sibling::text()[1]')[0]
答案 1 :(得分:2)
这就是你想要的:)
from lxml import html
text = """
<div id="message1">
<div class="message2">
<strong>WORD</strong> This is what I want.<br/>
</div>
</div>
"""
tree = html.fromstring(text);
print(tree.xpath("//div[@class='message2']/strong/following-sibling::text()")[0])
答案 2 :(得分:0)
我不确定LXML的具体内容,但如果这是您要查找的文本,则调用文本将不会返回强标记内存在的子树文本。
因此,在一般的XPath术语中,这就是您要寻找的仅匹配该文本的内容。
//*[@class="message2"]/text()