admin 管理员组文章数量: 887018
自我介绍:不是计算机专业,甚至不沾边。长期上网对网页制作什么的只有一丁点皮毛知识。有一些爬虫技能,但仅限于从网页获取json并解析,类似的。
使用设备:
设备名称 DESKTOP-53730H2
处理器 12th Gen Intel(R) Core(TM) i7-12700 2.10 GHz
机带 RAM 32.0 GB (31.3 GB 可用)
设备 ID F9F3E092-CF01-4862-9DEC-00C1A4C39D78
产品 ID 00325-81388-30062-AAOEM
系统类型 64 位操作系统, 基于 x64 的处理器
笔和触控 没有可用于此显示器的笔或触控输入
版本 Windows 11 家庭版
版本 21H2
安装日期 2022/5/11
操作系统版本 22000.2538
体验 Windows 功能体验包 1000.22001.1000.0
背景叙述:我本来打算爬取全国水雨情信息,发现我的电脑打开这个网页看到的json是一些生僻字,但是网页本身显示没问题,如下图。
解决一:
确认json存储格式为utf-8,ensure_ascii=False;存储的json依旧是乱码。
def get_tides (date):
url = 'http://xxfb.mwr/OTMuhovshHolkdc/OTMbmdvbjQjosq'
headers = {
"Accept": "application/json, text/javascript, */*; q=0.01",
"Content-Type": "application/json;charset=UTF-8",
"Cookie": "__FT10000066=2024-3-16-13-46-27; __NRU10000066=1710567987611; __RT10000066=2024-3-16-13-46-27",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0",
"X-Requested-With": "XMLHttpRequest",
}
retries = 0
while retries < 5:
try:
r = requests.post(url, headers=headers)
r.raise_for_status()
data = r.json()
with open(f"{date.strftime('%Y-%m-%d')}.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False)
break
except (requests.exceptions.RequestException, json.JSONDecodeError) as e:
retries += 1
print(e)
get_tides(datetime.now())
font_file_uel = 'http://xxfb.mwr/ttf/aLVP5AhmbQ_1710586649773.eot?#iefix'
ttf = TTFont(io.BytesIO(requests.get(font_file_uel).content))
# ttf.save('sqsj.ttf')
ttf.saveXML('sqsj.xml')
于是天真的我以为这个网页被反爬了,就开始找字体库,并准备解析这个字体库,然后把json还原。后来进行到准备写字典,查看 ttf 的时候发现字太多了,根本统计不完,遂作罢。
解决二:
找了一个爬虫的老师帮我写爬虫代码,老师把代码给我后,我一看很简单,就是获取json然后解析,于是运行了。运行后发现得到的excel文件里的信息还是乱码。但是老师说他那边的文件是对的,他的网站打开也是对的。
老师获取的数据和网页截图:
所以我就很纳闷。。
解决三:
以为是自己访问过于频繁被限IP了,就远程了同学的电脑,同学跟我不在一个城市,用她的电脑查看了这个网页全国水雨情信息,发现同学的电脑看到的json也全是生僻字。
解决四:
以为是我电脑字体的问题,就修改了电脑--控制--时钟和区域--管理--更改系统区域设置--Beta版打勾--确认,发现没用。
我开始了漫长的找原因之旅。。
1)用IE模式打开了原网站,发现整个网页的主要内容全是乱码;
2)修改了网页编码为UTF-8,依旧是乱码;
3)确认了网页和json的编码格式的确是 UTF-8;
所以到底是为什么。。
我开始查资料,觉得是网页制作的bug。。但我毕竟不是专业的。。所以有没有 大神 能帮我看看这究竟是怎么回事
疑惑的点:
1. 为什么老师的浏览器可以看到完美的网页,而我下载的json全是乱码?
2. 我的操作过程有任何问题或者多余,都请老师们指出,我全都欣然接受,太想学习,太想知道了!
版权声明:本文标题:请教问题,有没有大佬帮忙看看网页乱码问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726724071h1018848.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论