这里是典型的字典运用实例:
def getStockInfo(lst, stockURL, fpath):
"""
从百度股票获取个股信息
获取股票的列表
根据股票列表,到相关网站获取价格存储url中
文件保存路径
在百度中查看网页源代码,查看价格,
要是我自己写,要怎么获取价格呢?
首先向每个个股信息发起请求
"""
for stock in lst:
url = stockURL + stock + ".html" # 形成访问个股页面的url
html = getHTMLText(url)
"""
解析过程可能出现异常
"""
try:
if html == "":
continue
infoDict = {} # 记录返回所有的个股信息
# 然后用BeautifulSoup库解析网页类型
soup = BeautifulSoup(html, 'html.parser')
stockInfo = soup.find('div', attrs={'class': 'stock-bets'}) # 解析发现,股票信息都保存在div标签下
name = stockInfo.find_all(attrs={'class': "bets-name"})[0]
infoDict.update({'股票名称': name.text.split()[0]}) # 使用split获得股票对应的完整名称
keyList = stockInfo.find_all('dt')
valueList = stockInfo.find_all('dd')
for i in range(len(keyList)):
key = keyList[i].text
val = valueList[i].text
infoDict[key] = val # 直接赋值给字典
with open(fpath, 'a', encoding='utf-8') as f:
f.write(str(infoDict) + '\n')
except:
traceback.print_exc() # 获得错误信息
continue
return ""
定义字典与更新字典
infoDict = {} # 记录返回所有的个股信息
# 然后用BeautifulSoup库解析网页类型
soup = BeautifulSoup(html, 'html.parser')
stockInfo = soup.find('div', attrs={'class': 'stock-bets'}) # 解析发现,股票信息都保存在div标签下
name = stockInfo.find_all(attrs={'class': "bets-name"})[0]
infoDict.update({'股票名称': name.text.split()[0]}) # 使用split获得股票对应的完整名称
使用update,也说明了字典是可变类型