簡體   English   中英

用python美湯提取html元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM