html结果为<div class="font-160 line-110" data-container=".snippet container" data-html="true" data-placement="top" 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-toggle="tooltip" title="XIAMEN [CN]">
如何在"XIAMEN [CN]"
之后立即取出title
。我试过find_all('title')
,但这不会返回匹配项。我也不能从siblings
中调用任何一个来追溯结果。我甚至无法让find(text='XIAMEN [CN]')
返回任何东西。
答案 0 :(得分:1)
您应该使用类或某些属性来选择div,调用find("div")
将选择页面上的第一个div, title 是属性而不是标记,因此您需要找到标记后,访问标题属性。一些如何具体的示例并提取属性:
html = """<div class="font-160 line-110" data-container=".snippet container" data-html="true" data-placement="top" 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-toggle="tooltip" title="XIAMEN [CN]">"""
soup = BeautifulSoup(html, "html.parser")
# use the css classes
print(soup.find("div", class_="font-160 line-110")["title"])
# use an attribute value
print(soup.find("div", {"data-container": ".snippet container"})["title"])
如果只有一个带有属性的div,请查找div设置 title = True :
soup.find("div", title=True)
您还可以组合这些步骤,即类和一个或多个属性。
答案 1 :(得分:0)
from bs4 import BeautifulSoup
myHTML = 'what you posted above'
soup = BeautifulSoup(myHTML, "html5lib")
title = soup.find('div')['title']
我们只是在这里搜索<div>
标签,您可能希望在体内更具体。
答案 2 :(得分:0)
比其他答案稍微安全一些
https://image-charts.com/chart?
&chs=150x150
&cht=qr
&chl=Hello world
&choe=UTF-8