python - 如何使用 beautifulsoup python 提取 HTML 列表中的文本

标签 python html parsing html-parsing beautifulsoup

我正在尝试编写一个Python程序,可以在html列表之间提取文本。我想提取诸如精装书和页数之类的信息。有人知道这个操作的命令吗?

<h2>Product Details</h2>
  <div class="content">
<ul>

<li><b>Hardcover:</b> 156 pages</li>

<li><b>Publisher:</b> Insight Editions; Har/Pstr edition (June 18, 2013)</li>

<li><b>Language:</b> English</li>

<li><b>ISBN-10:</b> 1608871827</li>
<li><b>ISBN-13:</b> 978-1608871827</li>

为了解析我使用的其他信息:

definition in soup.findAll('span', {"class":'bb_price'}):
definition = definition.renderContents() 

但它不适用于这种情况。

最佳答案

通过text查找b标签并获取next_sibling

工作示例:

from bs4 import BeautifulSoup

data = """<h2>Product Details</h2>
  <div class="content">
<ul>

<li><b>Hardcover:</b> 156 pages</li>

<li><b>Publisher:</b> Insight Editions; Har/Pstr edition (June 18, 2013)</li>

<li><b>Language:</b> English</li>

<li><b>ISBN-10:</b> 1608871827</li>
<li><b>ISBN-13:</b> 978-1608871827</li></ul></div>"""

soup = BeautifulSoup(data)

print soup.find('b', text='Hardcover:').next_sibling
print soup.find('b', text='Publisher:').next_sibling

打印:

156 pages
Insight Editions; Har/Pstr edition (June 18, 2013)

关于python - 如何使用 beautifulsoup python 提取 HTML 列表中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303072/

相关文章:

python - OpenCV(在 C++ 中)到 MQTT 代理

python - 除非我手动调整窗口大小,否则 Selenium 将看不到元素

html - 在具有动态高度的 div 中垂直居中图像

java - 如何实现epsilon转换?

python - 在python中可以异步写入文件吗?

python - 在 python 中通过进程名称获取 PID 的跨平台方法

html - 完整的背景图像响应式内部 CSS

html - 无法将文本与切换按钮对齐

javascript - AngularJS 纯文本解析与一些简单的规则

java - SimpleDateFormat 解析返回年终日期