python - Beautifulsoup 获取标签内容的最简单方法

标签 python html beautifulsoup

问题是 contents Beautifulsoup 标签的是列表而不是字符串。因此,我必须使用 for 循环来获取标签内的内容。这很麻烦。有更好的方法吗?

from bs4 import BeautifulSoup
html_doc = u'<li><span class="def">1. <span class="cat">cat</span>example<span class="ex">ex</span></span></li>'
soup = BeautifulSoup(html_doc)
div = soup.find("span", class_='def')
print div.contents
result = ''
for divcont in div.contents:
    result = result + unicode(divcont)
print result

输出:

[u'1. ', <span class="cat">cat</span>, u'example', <span class="ex">ex</span>]
1. <span class="cat">cat</span>example<span class="ex">ex</span>

字符串 1. <span class="cat">cat</span>example<span class="ex">ex</span>是我想要的,但我需要一种更简单的方法来获得它。

最佳答案

使用join :

from bs4 import BeautifulSoup
html_doc = u'<li><span class="def">1. <span class="cat">cat</span>example<span class="ex">ex</span></span></li>'
soup = BeautifulSoup(html_doc)
div = soup.find("span", class_='def')
print(''.join(str(e) for e in div))

关于python - Beautifulsoup 获取标签内容的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29687391/

相关文章:

python - Flask 邮件错误 "SMTPServerDisconnected(' 请先运行 connect()')"

python - 如何在 python 中使用带有统计信息的值列表

python - 在删除同一 QuerySet 中的对象时迭代 Django QuerySet

javascript - WordPress 主题使用 Jquery 移动对象

python - 抓取 Google Play 商店 BeautifulSoup/Selenium

Python Beautiful Soup 和 urllib.request - 如何通过 Steam 年龄检查

python - 在 Python 中返回没有特定元素的列表的快速方法

css - IE7/8 和 Goldilocks Approach(响应式网页设计)不能一起工作

python-3.x - Beautifulsoup 捕获了名字而不是网页的元分数

javascript - DOM 元素过多