【发布时间】:2016-06-15 08:20:50
【问题描述】:
import urllib.request
import re
import csv
import pandas as pd
from bs4 import BeautifulSoup
columns = []
data = []
f = open('companylist.csv')
csv_f = csv.reader(f)
for row in csv_f:
stocklist = row
print(stocklist)
for s in stocklist:
print('http://finance.yahoo.com/q?s='+s)
optionsUrl = urllib.request.urlopen('http://finance.yahoo.com/q?s='+s).read()
soup = BeautifulSoup(optionsUrl, "html.parser")
stocksymbol = ['Symbol:', s]
optionsTable = [stocksymbol]+[
[x.text for x in y.parent.contents]
for y in soup.findAll('td', attrs={'class': 'yfnc_tabledata1','rtq_table': ''})
]
if not columns:
columns = [o[0] for o in optionsTable] #list(my_df.loc[0])
data.append(o[1] for o in optionsTable)
# create DataFrame from data
df = pd.DataFrame(data, columns=columns)
df.to_csv('test.csv', index=False)
当我有大约 200 到 300 只股票时,脚本可以正常工作,但我的公司列表有大约 6000 个符号。
- 有没有一种方法可以下载大量数据,比如一次 200 只股票,暂停一会儿,然后再次恢复下载?
- 出口一次是一个库存;如何一次写入 200 个,并将下一批附加到初始批(对于 CSV)?
【问题讨论】:
标签: python python-3.x pandas finance datareader