2016-04-01 11 views
0

Sadece fiyat verilerini $ ile çıkarmak istiyorum. Dosyada birden fazla fiyat var ve ben sadece class = "fiyat-etiket"> sınıfından sonra olanlar = class = "strike">Python filtre sorunuyla ilgili yeniden düzenleme

Tüm kodun yapıştırılmasını istiyorum. bilgi formunu çektim file.txt - İstenilen çıktının adı ve fiyatı yan yana olmaktır. Daha önce Güzel Çorba kullanmamıştım.

data-default-alt="Ford Truck">  </h3>  </a>   </div>  <div class="tileInfo">    <div class="swatchesBox--empty"></div>              <div class="promo-msg-text">   <span class="calloutMsg-promo-msg-text"></span>   </div>        <div class="pricecontainer" data-pricetype="Stand Alone">    <p id="price_206019013" class="price price-label ">     $1,000.00    </p> 

Benim Kod

with open("targetbubbles.txt") as str: 
    st = str.read() 
    #print st 

import re 

#brand=re.search('data-default-title=\"(.*?)" ',st) 

#cost=re.search('\$(\d+,?\d*\.\d+)</p>',st) 
+0

Bunu XML ayrıştırıcı çeşit kullanıyorsunuz umut bu tür bir yardımcı modüldür? Lütfen kodunuzu gösterin. – idjaw

cevap

1

beautifulsoup bok

>>> import bs4 
>>> s = '''  <p id="price_206019013" class="price price-label ">     $2.84    </p>            <p class="regularprice-label">  Reg.  <span class="screen-reader-only"> price</span>  <span class="strike">  $2.99  </span>  </p>     <div class="eyeBrow sale-msg">  <span ''' 
>>> soup = bs4.BeautifulSoup(s, 'lxml') 
>>> soup.find_all('p', class_='price price-label ') 
[<p class="price price-label " id="price_206019013">     $2.84    </p>] 
>>> [result] = soup.find_all('p', class_='price price-label ') 
>>> result.text.strip(' $') 
u'2.84' 
+0

Teşekkürler! Güzel Çorba ile aşina olmadığımdan daha fazla bilgi vermek için bazı düzenlemeler yaptım. Bundan sonra meydan okurcasına bir atış yapacağım. – turtle02

İlgili konular