python爬取基金净值导出CSV文件后中文显示乱码

问题遇到的现象和发生背景

爬取基金净值导出CSV文件后中文显示乱码

问题相关代码,请勿粘贴截图
import pandas as pd
import csv
for i in range(1,2):  
    url = 'https://fundf10.eastmoney.com/F10DataApi.aspx?type=lsjz&code=000434&sdate=2016-09-29&edate=2022-02-14&per=20&page=1'
    tb = pd.read_html(url)[0]
    tb.to_csv(r'1.csv', mode='a', encoding='utf-8-sig', header=1, index=0)
    print('第'+str(i)+'页抓取完成')

运行结果及报错内容

文件不报错,但导出的文件中文为乱码

img

我的解答思路和尝试过的方法

尝试把编码改成utf-8,仍然出现乱码

我想要达到的结果

希望最后导出的表格中的中文可以正常显示

指定read_html的编码。

img

import pandas as pd
import csv
for i in range(1,2):  
    url = 'https://fundf10.eastmoney.com/F10DataApi.aspx?type=lsjz&code=000434&sdate=2016-09-29&edate=2022-02-14&per=20&page=1'
    tb = pd.read_html(url,encoding ='utf-8')[0]########指定编码
    tb.to_csv(r'1.csv', mode='a', encoding='utf-8-sig', header=1, index=0)
    print('第'+str(i)+'页抓取完成')
 

需要注意csv保存为utf-8编码直接打开会乱码,参考:


img

有没有尝试一下在控制台输出一下看看呀

import pandas as pd
import csv
for i in range(1,2):  
    url = 'http://fundf10.eastmoney.com/F10DataApi.aspx?type=lsjz&code=000434&sdate=2016-09-29&edate=2022-02-14&per=20&page={}'.format(str(i))
    tb = pd.read_html(url,encoding = "utf-8")[0]
    tb.to_csv('1.csv', mode='a',  header=1,encoding = "gbk", index=0)
    print('第'+str(i)+'页抓取完成')

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632