首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python提取雅虎财务资产负债表

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

Stack Overflow用户
提问于 2015-07-08 06:54:17
回答 1查看 1.4K关注 0票数 1

我正在学习如何使用漂亮的汤和python来提取html表格。我尝试使用以下代码为Google提取资产负债表。然而,我似乎不能正确地抓取所有的行。

我不能设法省略只是一个间隔符的行,并且我不能设法提取合计的行(例如。总资产)。

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

代码语言:javascript
复制
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')
EN

回答 1

Stack Overflow用户

发布于 2015-07-08 07:16:55

您可能会发现,通过YQL更容易将这些数据结构化。请参阅http://goo.gl/qKeWXw

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31280767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档