簡體   English   中英

如何從 yahoo_finance 股票中檢索實時價格?

[英]How to retrieve live price from yahoo_finance stock?

我正在構建一個應用程序,我想從雅虎財經檢索最新報價。 我正在嘗試使用 BeautifulSoup 刮路徑,但是打印時我得到的只是一個空列表。 有什么建議么?

示例 HTML:

<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)" data-reactid="35"><!-- react-text: 36 -->169.37<!-- /react-text --></span>

我的代碼:

 import requests
 from bs4 import BeautifulSoup
 a = requests.get('https://finance.yahoo.com/quote/AAPL/history?p=AAPL')
 soup = BeautifulSoup(a.content, 'lxml')
 search = soup.find_all('span', {'class':'Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) 
 D(ib)'})
 print(search)

您可以將 selenium 與 BeautifulSoup 結合使用以獲得您想要的內容。 像下面這樣:

from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://finance.yahoo.com/quote/AAPL/history?p=AAPL')
soup = BeautifulSoup(driver.page_source,"lxml")
item = soup.find(id="quote-market-notice").find_parent().find("span").text
print(item)
driver.quit()

輸出:

169.37

找到了一個python api:

https://pypi.python.org/pypi/yahoo-finance

>>> from yahoo_finance import Share   
>>> yahoo = Share('YHOO')  
>>> print yahoo.get_open()  
'36.60'  
>>> print yahoo.get_price()  
'36.84'  
>>> print yahoo.get_trade_datetime()  
'2014-02-05 20:50:00 UTC+0000'  

猜測一下,這將更容易使用並且破壞更少

您可以使用 yahoo_fin 包(請參閱http://theautomatic.net/yahoo_fin-documentation/ )。 這里有幾個例子:

# load the stock_info module from yahoo_fin
from yahoo_fin import stock_info as si

# get Apple's live quote price
si.get_live_price("AAPL")

# or Amazon's
si.get_live_price("AMZN")

只需用您需要的任何代碼替換“AAPL”或“AMZN”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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