如何保存网页中URL编码的Lørenskog并还原为原名称读取?
保存并还原URL编码字符串为原始字符
问题背景
- 网页原始标题为 Lørenskog
- 通过Selenium代码
titles_urls = self.driver.find_elements(By.XPATH, './/a')获取链接元素 - HTML源码中显示为
\u00f8renskog(Unicode转义格式) - 打印元素href属性时输出为
%C3%B8renskog(URL编码格式)
解决方案
你已经验证urllib.parse.unquote()可正确解码URL编码字符串,在此基础上按以下步骤实现保存与读取:
1. 解码URL编码字符串
从元素href中提取编码字符串后,用unquote解码为原始Unicode字符:
import urllib.parse # 从元素href获取的编码内容 encoded_str = "%C3%B8renskog" decoded_str = urllib.parse.unquote(encoded_str) # 此时decoded_str的值为"Lørenskog"
2. 保存到文件
保存时指定UTF-8编码,确保特殊字符被正确写入:
# 写入文件 with open("location_name.txt", "w", encoding="utf-8") as f: f.write(decoded_str)
3. 读取文件并显示
读取时同样指定UTF-8编码,即可还原原始字符:
# 读取文件 with open("location_name.txt", "r", encoding="utf-8") as f: saved_name = f.read() print(saved_name) # 输出:Lørenskog
补充说明
- HTML中的
\u00f8是Unicode转义格式,对应字符ø,和URL编码的%C3%B8是同一字符的不同编码表现,均可通过对应方法还原为原始字符。 - 保存和读取环节必须指定UTF-8编码,避免出现乱码问题。
内容的提问来源于stack exchange,提问作者ghost239
相关产品推荐
相关产品推荐

