【发布时间】:2018-12-04 03:06:45
【问题描述】:
与许多其他人一样,由于雅虎和谷歌 API 已经失效,我一直在寻找股票价格的替代来源。我决定尝试从雅虎网站上抓取历史价格仍然可用的网站。我设法将以下代码放在一起,几乎可以满足我的需要:
import urllib.request as web
import bs4 as bs
def yahooPrice(tkr):
tkr=tkr.upper()
url='https://finance.yahoo.com/quote/'+tkr+'/history?p='+tkr
sauce=web.urlopen(url)
soup=bs.BeautifulSoup(sauce,'lxml')
table=soup.find('table')
table_rows=table.find_all('tr')
allrows=[]
for tr in table_rows:
td=tr.find_all('td')
row=[i.text for i in td]
if len(row)==7:
allrows.append(row)
vixdf= pd.DataFrame(allrows).iloc[0:-1]
vixdf.columns=['Date','Open','High','Low','Close','Aclose','Volume']
vixdf.set_index('Date',inplace=True)
return vixdf
它会生成一个包含我想要的信息的数据框。不幸的是,即使实际网页显示了一整年的价格,我的例程也只返回 100 条记录(包括股息记录)。知道如何获得更多吗?
【问题讨论】:
-
价格通过 Javascript 动态加载,beautifulsoup 不执行
标签: python screen-scraping finance stockquotes