我正在尝试编写一个可以在html中的列表之间提取文本的python程序。我想提取诸如精装书和页数之类的信息。有人知道这个操作的命令吗?
<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()
但它不适用于这种情况。
答案 0 :(得分:2)
按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)