申明:资料来源于网络及书本,通过理解、实践、整理成学习笔记。
文章目录
- 完整代码
- 运行结果截图
完整代码
import requests, configparser, os
class TT_fund_get_fund_rank:
def get_fund_rank(self):
__conf = configparser.ConfigParser()
if os.path.exists('../conf/TT_fund.ini'):
__conf.read('../conf/TT_fund.ini')
else:
__conf.read('conf/TT_fund.ini')
fund_rank_url = __conf.get('get_fund_rank', 'fund_rank_url')
headers = {
__conf.get('get_fund_rank_headers', 'headers'): __conf.get('get_fund_rank_headers', 'headers_value')
}
res = requests.get(fund_rank_url, headers=headers)
res.encoding = res.apparent_encoding
# 处理数据
fund_rank_list_1 = res.text[res.text.index('"'):res.text.index(']'):1].split('",')
fund_rank_list_2 = []
fund_rank_list_3 = []
for i in fund_rank_list_1:
fund_rank_list_2.append(i.split('"')[1])
print(fund_rank_list_2)
for i in fund_rank_list_2:
fund_rank_list_3.append(i.split(','))
# 获取xls文件的位置
if os.path.exists('../results/excel/天天基金排行.xls'):
TT_fund_rank_data_xls = '../results/excel/天天基金排行.xls'
else:
TT_fund_rank_data_xls = 'results/excel/天天基金排行.xls'
# 将获取的基金排行数据写入到excel文档中
output = open(TT_fund_rank_data_xls, 'w', encoding='gbk')
output.write(
'基金代码\t基金名称\t基金简称\t日期\t单位净值\t累计净值\t日增长率\t近1周\t近1月\t近3月\t近6月\t近1年\t近2年\t近3年\t今年来\t成立来\t成立日\t/\t自定义\t原手续费\t现手续费\t手续费折扣\t/\t/\t/\n')
for i in range(len(fund_rank_list_3)):
for j in range(len(fund_rank_list_3[i])):
if str(fund_rank_list_3[i][j]) == '':
fund_rank_list_3[i][j] = '/'
# write函数不能写int类型的参数,所以使用str()转化
output.write(str(fund_rank_list_3[i][j]))
# 相当于Tab一下,换一个单元格
output.write('\t')
# 写完一行立马换行
output.write('\n')
output.close()
if __name__ == '__main__':
TT_fund_get_fund_rank().get_fund_rank()
运行结果截图
推荐一:爬取天天基金的7663个基金排名保存到excel表
推荐二:爬取哔哩哔哩主播的头像以昵称命名保存到本地文件
推荐三:爬取CSDN作者总榜排名保存到excel表
一个坚持学习,坚持成长,坚持分享的人,即使再不聪明,也一定会成为优秀的人!
如果看完觉得有所收获的话,记得一键三连哦,谢谢大家!