[英]How can I scrape Yahoo Finance by parsing through a text file containing a list of tickers?
[英]How can I go through a list of equities tickers to update a dataframe
我真的是Python新手,這個問題可能太基礎了,以至於我現在似乎無法在線找到任何答案。
我一直在嘗試遍歷9個股票報價器的列表,以下稱為“符號”,以從YahooFinancials檢索每個報價器的資產負債表,現金流量表和損益表。
已for symbol in ecommerce():
創建循環,但在下面收到TypeError。
from yahoofinancials import YahooFinancials
import pandas as pd
import requests
import numpy as np
from datetime import datetime
ecommerce = ['CTRP', 'EBAY', 'GRUB', 'BABA', 'JD', 'EXPE', 'AMZN', 'BKNG', 'MPNGF']
for symbol in ecommerce():
df_income_statement = scrape_table('https://finance.yahoo.com/quote/' + symbol + '/financials?p=' + symbol)
df_income_statement
df_cash_flow = scrape_table('https://finance.yahoo.com/quote/' + symbol + '/cash-flow?p=' + symbol)
df_cash_flow
balance_sheet_url = 'https://finance.yahoo.com/quote/' + symbol + '/balance-sheet?p=' + symbol
df_balance_sheet = scrape_table(balance_sheet_url)
預期結果:帶有資產負債表“ CTRP”,“ EBAY”,“ GRUB”,“ BABA”,“ JD”,“ EXPE”,“ AMZN”,“ BKNG”,“ MPNGF”的數據框
TypeError: 'list' object is not callable
from yahoofinancials import YahooFinancials import pandas as pd import requests import numpy as np from datetime import datetime
ecommerce = ['CTRP', 'EBAY', 'GRUB', 'BABA', 'JD', 'EXPE', 'AMZN', 'BKNG', 'MPNGF']
for symbol in ecommerce(): df_income_statement = scrape_table('https://finance.yahoo.com/quote/' + symbol + '/financials?p=' + symbol) df_income_statement
如果您編寫ecommerce()
Python會假定您要調用名稱ecommerce
引用的函數(可調用),但您要執行的操作是遍歷列表(ecommerce包含一個列表)。
因此,您只需要刪除()。 您可以從以下內容開始:
for symbol in ecommerce:
income_statement_dataframes= pd.read_html('https://finance.yahoo.com/quote/' + symbol + '/financials?p=' + symbol)
使用此代碼, income_statement_dataframes
應該包含一個數據幀列表。 網址所引用的網頁上每個html表一個數據幀。 您只需要檢查它是哪個表即可。 如果幸運的話,您可以通過這種方式使用它。 如果在列表的元素之間找不到可用形式的表(例如,如果html更加邪惡),則可以查看BeautifulSoup(導入bs4)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.