You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中使用Selenium保存含印地语字符的页面源码乱码问题

解决Selenium获取多语言页面源码写入文件乱码问题

你的代码存在几个基础错误,直接导致了乱码和语法问题:

  1. 错误调用页面源码属性:driver.page_source是属性而非方法,不需要加括号(),写成driver.page_source()会抛出异常,根本没正确获取到页面源码。
  2. 变量名不一致:打开文件时赋值给了变量file,但写入时用的是a.write,这是明显的语法错误,会触发NameError。

另外,写入文件时未指定UTF-8编码,Python默认编码(如Windows环境下的gbk)无法正确处理印地语等非英文字符,这是乱码的核心原因。

正确写法1:文本模式指定编码

使用with语句自动管理文件生命周期,同时指定encoding='utf-8'确保字符编码正确:

with open('index.html', 'w', encoding='utf-8') as f:
    f.write(driver.page_source)

正确写法2:二进制模式编码写入

先将页面源码字符串编码为UTF-8字节流,再以二进制模式写入:

with open('index.html', 'wb') as f:
    f.write(driver.page_source.encode('utf-8'))

你之前尝试二进制写入无效,大概率是因为没修正driver.page_source()的调用错误,导致获取的内容本身就有问题。修正上述错误后,两种写法都能正常保存包含印地语和英语的页面源码,打开文件时也会以UTF-8编码解析,不会出现乱码。

内容的提问来源于stack exchange,提问作者Karan Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 01:15:56