2017-12-10 9 views
0

私はアプリケーションを構築しており、yahoo-financeから最新の見積価格を取得したいと考えています。私は美しいスープを使用してパスをスクラップしようとしていますが、私が印刷するときに得られるのは空のリストです。助言がありますか? (outterのHTML:169.37)yahoo_finance株式からライブプライスを引き出す方法は?

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) 
+0

続きページのentはおそらくアヤックスによってもたらされます - あなたはそれを形作ることができません。あなたが運が良ければ、APOIを提供しますので、何かを削る必要はありません。APIを使用するだけです。 –

+0

@PatrickArtnerライブ株価をスクラップする方法があるかどうか知っていますか?おそらく別の情報源からですか?ありがとう –

+2

https://stackoverflow.com/questions/27794418/free-json-formatted-stock-api-live-or-historical –

答えて

0

あなたは後にしているコンテンツを取得するために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 
+0

私は現在ビジュアルスタジオを使用していますが、インストールされていますが、bs4でエラーが発生します。なぜこれが起こっているのか分かりますか? –

+0

物事をインストールすることについて何か示唆を与えることになると、私の頭が回転します。あなたは 'bs4'をどのように動かせるかについてgoogleを使って解決策を見つけることができます。 Btw、上記のコードは試してみる価値があります。ありがとう。 – SIM

+0

ほぼ完璧に動作しています。私はちょうど質問があります。コードを実行すると、上記のコードで提供されたURLがChromeウェブページに表示されます。どのように私はこれを停止できますか?私はその番号を取得したい。その場合は –

1

は、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' 

を、これが使いやすくなり、より少ない壊れます

+0

さて、それは動作していません。私はYQLquerryErrorを手に入れました!それはあなたのために働いていますか? –

関連する問題