Selenium获取标签内文本遇UnicodeEncodeError错误的解决方法
解决Unicode编码错误并正确获取h1标签目标文本
一、先解决UnicodeEncodeError编码问题
这个错误是因为Python环境默认编码(cp950,繁体中文编码)无法处理某些特殊字符(比如\u2764是爱心符号),可以通过以下方式解决:
- 在Python脚本开头添加编码声明:
# -*- coding: utf-8 -*- - 强制设置标准输出为UTF-8编码,在脚本开头加入:
import sys sys.stdout.reconfigure(encoding='utf-8') - 如果在Windows命令行运行脚本,先执行命令切换终端编码:
chcp 65001
二、正确获取h1标签内的“SOHO yaya”文本
你当前的代码仅定位到h1元素,未提取文本;且h1内部包含span、div子元素,直接用.text会拿到所有子元素的文本内容,需要针对性提取h1的直接文本节点:
方法1:使用XPath定位直接文本节点
from selenium.webdriver.common.by import By # 定位h1元素后,提取其直接文本节点内容并去除空白 h1_element = driver.find_element(By.XPATH, '//h1[@class="nowrap"]') target_text = h1_element.find_element(By.XPATH, './text()').get_attribute('textContent').strip() print(target_text) # 输出:SOHO yaya
方法2:用JavaScript获取第一个文本节点
target_text = driver.execute_script("return document.querySelector('h1.nowrap').firstChild.textContent.trim();") print(target_text)
内容的提问来源于stack exchange,提问作者Janson Chan
相关产品推荐
相关产品推荐

