python - 如何使用 BeautifulSoup 在两个不同的标签之间获取值(value)?

标签 python beautifulsoup html-parsing

我需要在下面的代码片段中提取结束标记和
标记之间的数据:

<td><b>First Type :</b>W<br><b>Second Type :</b>65<br><b>Third Type :</b>3</td>

我需要的是:W, 65, 3

但问题是这些值也可以为空,比如-

<td><b>First Type :</b><br><b>Second Type :</b><br><b>Third Type :</b></td>

如果存在其他空字符串,我想获取这些值

我尝试使用 nextSiblingfind_next('br') 但它返回了

 <br><b>Second Type :</b><br><b>Third Type :</b></br></br>

<br><b>Third Type :</b></br>

如果标签之间不存在值(W、65、3)

</b> and <br> 

我所需要的是,如果这些标签之间没有任何内容,它应该返回一个空字符串。

最佳答案

我会使用 <b></b> 标记标签策略,查看他们的信息类型 next_sibling包含。

我只想检查他们的 next_sibling.string不是 None ,并相应地附加列表 :)

>>> html = """<td><b>First Type :</b><br><b>Second Type :</b>65<br><b>Third Type :</b>3</td>"""

>>> soup = BeautifulSoup(html, "html.parser")
>>> b = soup.find_all("b")
>>> data = []
>>> for tag in b:
        if tag.next_sibling.string == None:
            data.append(" ")
        else:
            data.append(tag.next_sibling.string)
>>> data 
[' ', u'65', u'3'] # Having removed the first string

希望这对您有所帮助!

关于python - 如何使用 BeautifulSoup 在两个不同的标签之间获取值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42554274/

相关文章:

python - 如何在python或R中统一生成半圆内的一组随机点?

python - 猴子修补从子方法调用的函数中的类 (Python)

python - 带有 sizer 的 wxpython 布局

python - Heroku 计划任务每​​ 10 分钟运行一次,每小时计划一次

python - 我不太明白如何解析 Yahoo NHL 页面

python - 如何从标签内获取文本,但忽略其他子标签

python - Beautiful Soup find_all 包装在一起而不是单独包装

java - 使用 JSoup 解析 href 值的链接适用于单个链接,但不适用于链接数组

angularjs - 使用 AngularJS 将 HTML 插入并解析到 View 中

c - 将简单的 HTML 解析成树