Python Beautiful Soup分割数据

时间:2018-03-23 20:17:46

标签: python beautifulsoup python-requests yahoo

我正在尝试用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)。我会为用户输入的任何股票执行此操作,但是正如您所看到的,我得到的其他数据我不知道如何拆分。

1 个答案:

答案 0 :(得分:1)

你已经拥有了这个元素。打印元素时,它包含其标记。如果您只想要元素的文本,请使用元素的.text属性。

>>> print(stock_total_revenue.text)
3,423