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

Selenium Firefox驱动下载TXT文件时HTML转义符异常问题

问题描述

使用Selenium Firefox驱动下载包含HTML和XBRL标签的TXT文件时出现转义字符异常:在Chrome浏览器中查看网页,大于号和小于号正常显示为>和<,但通过Selenium导出的TXT文件里,这些符号变成了>和<(相当于被二次转义)。

  • Chrome网页显示:TXT内容里的<>被正确转义为&gt;/&lt;
  • Selenium下载的TXT文件:&gt;被再次转义成&amp;gt;,&lt;变成&amp;lt;

原使用代码:

opts = FirefoxOptions()
opts.add_argument("--headless")
browser = webdriver.Firefox(options=opts)

browser.get(txtURL)
with open(downloadedTxtFileName, "w") as f:
    f.write(browser.page_source)
解决方法

问题根源是browser.page_source获取的是浏览器解析后的HTML源码,其中的转义字符被二次编码。以下两种方法可解决:

方法1:提取页面纯文本内容(适用于纯文本页面)

如果目标页面是纯TXT格式,直接提取页面的文本内容而非解析后的HTML源码:

from selenium.webdriver.common.by import By

opts = FirefoxOptions()
opts.add_argument("--headless")
browser = webdriver.Firefox(options=opts)

browser.get(txtURL)
# 获取页面body标签内的纯文本内容
txt_content = browser.find_element(By.TAG_NAME, "body").text
with open(downloadedTxtFileName, "w", encoding="utf-8") as f:
    f.write(txt_content)

方法2:直接发送HTTP请求下载原始文件(更可靠)

绕过浏览器解析环节,用HTTP请求直接获取原始文件内容,彻底避免浏览器的转义处理:

import requests

# 发送GET请求获取原始TXT内容
response = requests.get(txtURL)
response.encoding = response.apparent_encoding  # 自动识别文件编码
with open(downloadedTxtFileName, "w", encoding=response.encoding) as f:
    f.write(response.text)

说明:browser.page_source返回的是Firefox渲染后的DOM结构,会对页面中的转义字符进行二次转义;而直接提取文本或用requests获取原始资源,能拿到未被额外处理的原始TXT内容,保证转义符号与网页显示一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:45:34