首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在BeautifulSoup中提取标题后的字符串

在BeautifulSoup中提取标题后的字符串
EN

Stack Overflow用户
提问于 2016-10-11 21:24:47
回答 3查看 1.5K关注 0票数 1

结果是<div class="font-160 line-110" data-container=".snippet container" data-html="true" data-placement="top" data-template='&lt;div class="tooltip infowin-tooltip" role="tooltip"&gt;&lt;div class="tooltip-arrow"&gt;&lt;div class="tooltip-arrow-inner"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tooltip-inner" style="text-align: left"&gt;&lt;/div&gt;&lt;/div&gt;' data-toggle="tooltip" title="XIAMEN [CN]">

我怎么才能把"XIAMEN [CN]"title后面拉出来。我尝试了find_all('title'),但这不返回匹配。我也不能从siblings调用任何一个来遍历我的结果。我甚至不能让find(text='XIAMEN [CN]')归还任何东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-11 21:30:39

代码语言:javascript
运行
复制
from bs4 import BeautifulSoup

myHTML = 'what you posted above'
soup = BeautifulSoup(myHTML, "html5lib")
title = soup.find('div')['title']

我们只是在这里搜索<div>标签,你可能想在体内更具体一些。

票数 0
EN

Stack Overflow用户

发布于 2016-10-11 22:24:10

您应该使用类或某些属性来选择div,调用find("div")将选择页面上的第一个div,而且title是一个属性而不是标记,因此一旦找到标记,就需要访问title属性。关于如何具体化和提取属性的几个示例

代码语言:javascript
运行
复制
html = """<div class="font-160 line-110" data-container=".snippet container" data-html="true" data-placement="top" data-template='&lt;div class="tooltip infowin-tooltip" role="tooltip"&gt;&lt;div class="tooltip-arrow"&gt;&lt;div class="tooltip-arrow-inner"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tooltip-inner" style="text-align: left"&gt;&lt;/div&gt;&lt;/div&gt;' 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。

代码语言:javascript
运行
复制
soup.find("div", title=True)

您还可以组合这些步骤,即类和一个或多个属性。

票数 1
EN

Stack Overflow用户

发布于 2016-10-11 21:42:42

比另一个答案要安全一些

代码语言:javascript
运行
复制
from bs4 import BeautifulSoup

myHTML = 'what you posted above'
soup = BeautifulSoup(myHTML, "html5lib")
div = soup.find('div')
title = div.get('title', '')  # safe way to check for the title, incase the div doesn't contain it
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39986997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档