我有html:
<div title="" data-toggle="tooltip" data-template="
<div class="tooltip infowin-tooltip" role="tooltip">
<div class="tooltip-arrow">
<div class="tooltip-arrow-inner">
</div>
</div>
<div class="tooltip-inner" style="text-align: left">
</div>
</div>"
data-html="true" data-placement="top" data-container=".snippet-container" class="font-160 line-110 text-default text-light" data-original-title="HOUSTON [US]">
<ahref="/en/ais/details/ports/919" class="no-underline group-ib color-inherit">USHOU</a>
</div>
我想使用lxml
从中拉出“HOUSTON [US]”。使用BeautifulSoup
我可以
soup.find("div", class_='font-160 line-110')["title"]
lxml
中有类似内容吗?我试过了
parsed_body.xpath('.//div[@class="font-160 line-110 text-default text-light")["title"]')[0].text
但这会返回空白。
答案 0 :(得分:1)
您可以使用XPath:
//div[@class="font-160 line-110 text-default text-light"]/@data-original-title
在XPath中,方括号表示谓词。谓词过滤器返回节点,而不会影响返回的。即所以你的例子会返回div
元素本身。
要获取属性的值,您需要使用路径分隔符(/
),后跟@
符号和属性名称。
答案 1 :(得分:0)
我最终使用//div/@title[0]
来提取所需的文字。