[英]Extract html element with python beautiful soup
我正在尝试学习网络抓取,并希望使用 python 从下面的 HTML blob 中提取价格$46.00-$50.00
<div class="organic-gallery-offer-section__price">
<p class="elements-offer-price-normal medium" data-e2e-name="price@@normal" title="$46.00-$50.00"><span class="elements-offer-price-normal__price">$46.00-$50.00</span><span class="elements-offer-price-normal__unit">/ Piece</span></p>
<p class="element-offer-minorder-normal medium" data-e2e-name="minOrder"><span class="element-offer-minorder-normal__value">2 Pieces</span><span class="element-offer-minorder-normal__suffix">(Min Order)</span></p>
</div>]
到目前为止,我编写的代码不起作用
item.findAll("div",{"class":"elements-offer-price-normal medium"})
有多种方法可以提取所需的文本,例如:
from bs4 import BeautifulSoup
txt = '''
<div class="organic-gallery-offer-section__price">
<p class="elements-offer-price-normal medium" data-e2e-name="price@@normal" title="$46.00-$50.00"><span class="elements-offer-price-normal__price">$46.00-$50.00</span><span class="elements-offer-price-normal__unit">/ Piece</span></p>
<p class="element-offer-minorder-normal medium" data-e2e-name="minOrder"><span class="element-offer-minorder-normal__value">2 Pieces</span><span class="element-offer-minorder-normal__suffix">(Min Order)</span></p>
</div>'''
soup = BeautifulSoup(txt, 'html.parser')
print(soup.find('span', class_="elements-offer-price-normal__price").text)
印刷:
$46.00-$50.00
或者:使用 CSS 选择器:
print(soup.select_one('div.organic-gallery-offer-section__price span').text)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.