我正在学习如何使用漂亮的汤和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')发布于 2015-07-08 07:16:55
您可能会发现,通过YQL更容易将这些数据结构化。请参阅http://goo.gl/qKeWXw
https://stackoverflow.com/questions/31280767
复制相似问题