我正在尝试用Python创建一个股票数据分析程序。我正在抓取雅虎财经的数据。我唯一的问题似乎是分裂'数据。例如,我一直试图获得总收入'数据,但它从雅虎财务网站返回的表行多于该表行,并且我不确定如何在这种情况下使用.split来简单地获得总收入的字符串。这是我的代码:
from bs4 import BeautifulSoup
import requests
def get_fundamentals(ticker):
#function to grab fundamental stock data from yahoo finance
html = requests.get("https://finance.yahoo.com/quote/" + ticker.upper () + "/financials?p=" + ticker.upper())#Tags in lxml, html5lib, or html.parser
soup = BeautifulSoup(html.text, 'html.parser')
stock_total_revenue = soup.find('td',{'class':'Fz(s) Ta(end) Pstart(10px)'})
print(stock_total_revenue)
ticker = input("Please enter a stock ticker: ")
get_fundamentals(ticker)
我能够识别出我想要的表格数据,以及类,它让我到了正确的行以获得股票收入,但是,它还附带了许多其他附加数据,这就是我所在的地方我无法弄清楚如何分裂'数据,以便它只返回收入。这是我运行程序时的输出:
Please enter a stock ticker: dxtr
<td class="Fz(s) Ta(end) Pstart(10px)" data-reactid="39"><span data-reactid="40">3,423</span></td>
我一直试图拆分数据,这样它就可以打印出总收入(在这种情况下为3,423)。我会为用户输入的任何股票执行此操作,但是正如您所看到的,我得到的其他数据我不知道如何拆分。
答案 0 :(得分:1)
你已经拥有了这个元素。打印元素时,它包含其标记。如果您只想要元素的文本,请使用元素的.text
属性。
>>> print(stock_total_revenue.text)
3,423