Python使用Selenium如何提取元素style属性中的rotate角度值
Selenium提取style属性中rotate旋转角度的实现方案
直接按以下两步操作即可精准提取到你需要的风向角度值,无需额外依赖第三方库:
- 第一步:在已定位到的
detail-data-table表格范围内缩小查找范围,定位所有风向对应的div元素,避免匹配页面其他无关元素 - 第二步:读取每个div的style属性值,用正则表达式匹配提取
rotate(xxxdeg)格式的角度参数
具体实现代码
import re from selenium.webdriver.common.by import By # 已定位到的目标气象数据表格 detail_table = driver.find_element(By.ID, "detail-data-table") # 定位表格内所有带rotate样式的风向div wind_direction_divs = detail_table.find_elements(By.CSS_SELECTOR, "div[style*='rotate']") wind_angle_list = [] for div in wind_direction_divs: style_content = div.get_attribute("style") # 正则兼容空格、换行、webkit前缀的写法,精准捕获角度值 match_result = re.search(r"rotate\s*\(\s*(\d+deg)\s*\)", style_content) if match_result: # 输出结果为类似126deg的格式,需要纯数字可通过int(match_result.group(1).strip('deg'))转换 wind_angle = match_result.group(1) wind_angle_list.append(wind_angle)
注意事项
- 正则表达式中加入的
\s*匹配符,是为了兼容style属性换行、属性名和括号之间存在空格的写法,不会出现漏匹配 - 表格内的风向div和你之前抓取的日期、风速等数据行顺序完全对应,直接按遍历顺序把角度值拼接到对应行的数据集里即可,不会出现顺序错乱
- 该方法不需要额外解析CSS样式表,直接读取元素行内style属性做匹配,执行效率更高,也不会受页面动态加载样式的影响
内容的提问来源于stack exchange,提问作者Connor Callaghan
相关产品推荐
相关产品推荐

