2015-05-07 178 views
1

我有這樣的代碼吐出價格作爲一個字符串(125.01),但我一定已經改變了一些東西,因爲現在它打印整個行與html標籤和一切。我怎樣才能打印出來的文本,而不使用正則表達式?美麗的湯發現 - 只是文本

import requests 
from bs4 import BeautifulSoup 

url = 'http://finance.yahoo.com/q?s=aapl&fr=uh3_finance_web&uhb=uhb2' 

data = requests.get(url) 
soup = BeautifulSoup(data.content) 
price = soup.find("span", {'id':'yfs_l84_aapl'}) 
print(price) 


<span id="yfs_l84_aapl">125.01</span> 
+0

已解決。我添加了.get_text()方法,它工作。謝謝@halex –

回答

5

你要打電話給你price變量的get_text()方法:

print(price.get_text()) 
+0

或者'price.text'。不同的是,如果'span'有時具有HTML格式(例如,紅色表示負數),'text'將連接所有子標籤的文本,而'get_text()'只返回直接文本。如果你不希望發生這種情況,'get_text()'可能是你想要的。 – abarnert

+0

感謝您的快速和準確的答案! –

1

你在你的湯標籤使用get_text()

print(price.get_text()) 
+0

感謝您的快速和準確的答案! –