我有一个关于使用美丽的汤解析雅虎财务页面的快速问题。
以下是我想从中提取数据的页面示例。
https://finance.yahoo.com/quote/AAPL/cash-flow?p=AAPL
我成功地从使用BeautifulSoup中提取数据,但我无法弄清楚如何在年度数据与季度数据之间切换。因此,我只能提取年度数据。切换到季度时,网址似乎没有变化。从浏览器检查,它似乎切换一个表,我不知道如何处理使用美丽的汤。
我想知道是否有人有任何建议? 谢谢!
答案 0 :(得分:1)
您可以隔离页面上的json并获取所有年度和季度现金流量表。
url = 'https://finance.yahoo.com/quote/AAPL/financials?p=AAPL'
html = requests.get(url).text
soup = BeautifulSoup(html,'html.parser')
soup_script = soup.find("script",text=re.compile("root.App.main")).text
json_script = json.loads(re.search("root.App.main\s+=\s+(\{.*\})",soup_script)[1])
fin_data = json_script['context']['dispatcher']['stores']['QuoteSummaryStore']
cash_yr = fin_data['cashflowStatementHistory']['cashflowStatements']
cash_qtrs = fin_data['cashflowStatementHistoryQuarterly']['cashflowStatements']
资产负债表(balanceSheetHistory,balanceSheetHistoryQuarterly)和损益表(incomeStatementHistory,incomeStatementHistoryQuarterly)也在那里。
答案 1 :(得分:0)
@用户 试试这个:
json.loads(re.search("root.App.main\s+=\s+(\{.*\})",soup_script).group(1))
@Aran Freel 试试这个:
cf_annual = {}
for yr in range(len(cash_yr)):
cf_annual[yr] = pd.DataFrame(cash_yr[yr]).T
cf_annual