首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python漂亮汤提取文字

python漂亮汤提取文字
EN

Stack Overflow用户
提问于 2016-03-16 01:08:52
回答 2查看 2.3K关注 0票数 1

我试图从下面的html源代码中提取Manufacturer #PAW11295,结果被困住了。谢谢你的建议。

代码语言:javascript
复制
soupTest.find("div",id = "AddnInfo")
Out[121]: 
<div id="AddnInfo">
<h3>Additional Info</h3>
<p>
<p class="sknText"><label>“R”Web#:</label> <span class="value">215904</span>   </p>
<p class="skuText"><label>SKU:</label> <span class="value">B7958C02</span>    </p>
<p class="upc"><label>UPC/EAN/ISBN:</label> <span class="value">092317112958</span></p>
<p><label>Manufacturer #:</label> PAW11295</p>
<p><label>Product Weight:</label>2.2 pounds</p>
<p><label>Product Dimensions (in inches):</label>12.7 x 10.1 x 5.4</p>
</p>
</div>

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-16 09:13:46

以下方法应能奏效。它接受第五个<p>元素并获取<label>文本。然后删除它并显示整个<p>标记的剥离文本:

代码语言:javascript
复制
from bs4 import BeautifulSoup

html = """
<div id="AddnInfo">
<h3>Additional Info</h3>
<p>
<p class="sknText"><label>“R”Web#:</label> <span class="value">215904</span>   </p>
<p class="skuText"><label>SKU:</label> <span class="value">B7958C02</span>    </p>
<p class="upc"><label>UPC/EAN/ISBN:</label> <span class="value">092317112958</span></p>
<p><label>Manufacturer #:</label> PAW11295</p>
<p><label>Product Weight:</label>2.2 pounds</p>
<p><label>Product Dimensions (in inches):</label>12.7 x 10.1 x 5.4</p>
</p>
</div>
"""

soup = BeautifulSoup(html)
div = soup.find('div', {'id':'AddnInfo'})
p = div.find_all('p')[4]
label = p.find('label')
manufacturer = label.text
label.extract()
id = p.get_text(strip=True)
print manufacturer
print id

它将显示:

代码语言:javascript
复制
Manufacturer #:
PAW11295
票数 3
EN

Stack Overflow用户

发布于 2016-03-16 02:20:21

我想你想要这样的东西。首先选择外部P标签。然后选择所有内部P标记。然后引用您想要的单个P标记,在本例中是第四个。

代码语言:javascript
复制
infoDiv = soupTest.find("div",id = "AddnInfo")
outerPs = infoDiv.p  # isolate the outer <P>
innerPs = outerPs.find_all('p')  # returns a list of the inner <P>s
manufacturer_number = innerPs[3].string  # you will have to trim the <label>
manufacturer_code = innerPs[3].label.string  # will need trimming
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36025101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档