如何通过Selenium提取页面温度数值?代码问题求助
解决Selenium爬虫提取温度数值的问题
你的代码存在几个关键问题导致无法提取温度数值,以下是修正方案:
问题梳理
- 调用
clean_text时未传入目标文本,反而传了:,函数没有可处理的内容 split语句存在语法错误(引号未闭合),且未提取分割后的目标部分clean_text函数无返回值,处理结果无法传递出来main函数最终返回原始文本,未使用清洗后的结果
修正后的完整代码
from selenium import webdriver from selenium.webdriver.chrome.service import Service import time service = Service('/usr/local/Caskroom/chromedriver/118.0.5993.70/chromedriver-mac-x64/chromedriver') def get_driver(): # Set options to make browsing easier options = webdriver.ChromeOptions() options.add_argument("disable-infobars") options.add_argument("start-maximized") options.add_argument("disable-dev-shm-usage") options.add_argument("no-sandbox") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_argument("disable-blink-features=AutomationControlled") driver = webdriver.Chrome(service=service, options=options) driver.get("https://automated.pythonanywhere.com") return driver def clean_text(text): """Extract only the temperature from text""" # 按冒号分割文本,取第二部分并去除前后空格 output = text.split(":")[1].strip() return output def main(): driver = get_driver() time.sleep(2) element = driver.find_element(by="xpath", value="/html/body/div[1]/div/h1[2]") # 将页面获取的文本传入清洗函数 temperature = clean_text(element.text) driver.quit() # 关闭浏览器释放资源 return temperature print(main())
关键修改说明
修复
clean_text函数:- 修正
split语法错误,闭合引号 - 使用
split(":")将文本按冒号分割成列表,取索引为1的元素(即温度部分) - 用
strip()去除温度值前后的空格 - 添加
return output将处理后的温度值返回
- 修正
修正
main函数:- 将
element.text传入clean_text函数,获取清洗后的温度值 - 调用
driver.quit()关闭浏览器,避免资源占用 - 返回清洗后的温度值而非原始文本
- 将
内容的提问来源于stack exchange,提问作者lacekim
相关产品推荐
相关产品推荐

