python - 在 beautifulsoup4 中具有子元素的标签内提取文本节点

标签 python web-scraping beautifulsoup

我正在解析和抓取的 HTML 具有以下代码:

<li> <span> 929</span> Serve Returned </li>

如何只提取 <li> 的文本节点? ,在这种情况下“返回服务”为Beautifulsoup

.string<li> 起无效有一个子元素,并且 .text返回 <span> 中的文本.

最佳答案

import bs4
html = r"<li> <span> 929</span> Serve Returned </li>"
soup = bs4.BeautifulSoup(html)
print soup.li.findAll(text=True, recursive=False)

这给出:

[u' ', u' Serve Returned ']

第一个元素是跨度之前的“文本”。此方法可以帮助您在任何子元素之前和之后(以及之间)找到文本。

关于python - 在 beautifulsoup4 中具有子元素的标签内提取文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29808016/

相关文章:

Python 日志记录 : Inherit contextual information

html - XPath用于标签和下拉列表的组合

python - Scrapy 蜘蛛 :relative link and absolute link

python - 使用 Xpath 提取给定 anchor 标记文本的 href

python - 使用 beautifulsoup python 更改内部标签的文本

python - 如何使用 BeautifulSoup 获取 child 标签的描述文本

python - BeautifulSoup 没有提取所有 html

python - 网页抓取时的 <p> 和 <div> 顺序

python - Django 连接多个带注释的查询集

python - 使用正则表达式仅从字符串中删除 anchor 标记