我目前正在使用正则表达式yahooFinance
解析来自urllib
的数据。我可以为每个URL编写一个解析函数,但我宁愿使用if语句来声明要使用哪个URL,具体取决于我要查找的统计信息。我目前的代码如下。
如何将代码底部的每个stat变量(rt,capExp)链接到列表statName,以便我可以使用if语句在urllib函数中声明正确的URL。
如果不是列表,哪种数据结构最适合用于statName
?
def parseFinData():
def urlGenerate():
for ticker in index:
newIsUrl = isUrl.replace('AAPL', ticker)
newBsUrl = bsUrl.replace('AAPL', ticker)
newCfUrl = cfUrl.replace('AAPL', ticker)
statName = ['capExp','rt']
if len(statName) == 2:
url = newBsUrl
elif len(statName) == 6:
url = newCfUrl
else:
url = newIsUrl
req = urllib.request.Request(url)
resp = urllib.request.urlopen(req)
respData = resp.read()
rt = re.findall('Retained Earnings</td><td align="right">(.*?) </td>', dRespData)
capExp = re.findall('Capital Expenditures</td><td align="right">(.*?)</td>', dRespData)