用python提取雅虎财务资产负债表

时间:2015-07-07 22:54:17

标签: python beautifulsoup yahoo-finance

我正在学习使用beautifulsoup和python来提取html表。我尝试使用以下代码提取Google的资产负债表。但是,我似乎无法正确地抓取所有行。

我无法设法省略仅仅是间隔符的行,而我无法提取总计行(例如,总资产)。

有什么建议吗?关于简化代码的建议也很有价值。

from bs4 import BeautifulSoup
import requests

def bs_extract(stock_ticker):
    url= 'https://finance.yahoo.com/q/bs?s='+str(stock_ticker)+'&annual'
    source_code = requests.get(url)
    plain_text=source_code.text
    soup = BeautifulSoup(plain_text)

    c1= ""
    c2= ""
    c3= ""
    c4= ""
    c5= ""

    table = soup.find("table", { "class" : "yfnc_tabledata1" })
    # print (table)
    for row in table.findAll("tr"):
        cells = row.findAll("td")
        if len(cells)==5:
            c1=cells[0].find(text=True)
            c2=cells[1].find(text=True)
            c3=cells[2].find(text=True)
            c4=cells[3].find(text=True)
            c5=cells[4].find(text=True)
        elif len(cells)==6:
            c1=cells[1].find(text=True)
            c2=cells[2].find(text=True)
            c3=cells[3].find(text=True)
            c4=cells[4].find(text=True)
            c5=cells[5].find(text=True)
        elif len(cells)==1:
            c1=cells[0].find(text=True)
            c2=""
            c3=""
            c4=""
            c5=""
        else:
            pass
        print(c1,c2,c3,c4,c5)

 bs_extract('goog')

1 个答案:

答案 0 :(得分:0)

您可能会发现通过YQL更容易获得这些数据。见http://goo.gl/qKeWXw