如何用Python Selenium提取div元素内数值?代码返回None求助
解决Selenium提取div中价格文本返回None的问题
你的问题出在错误地使用了get_attribute('value')——目标<div>里的价格是元素的文本内容,而不是value属性(这个属性通常用于输入框这类表单元素),所以自然返回None。
修正方案
直接提取元素的文本内容,再做简单清理就能拿到你要的15,190:
from selenium import webdriver driver = webdriver.Chrome() url = 'required url' driver.get(url) elem = driver.find_element_by_css_selector('div._37U4_g') # 提取文本并去除前后空格和货币符号 price = elem.text.strip().replace('₹', '').strip() print('price of the item is:', price) driver.close()
额外优化:处理动态加载场景
如果页面是异步加载的,直接查找元素可能会因为元素还未渲染完成而报错,建议用显式等待确保元素可见后再提取:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() url = 'required url' driver.get(url) # 等待元素可见,超时时间设为10秒 elem = WebDriverWait(driver, 10).until( EC.visibility_of_element_located((By.CSS_SELECTOR, 'div._37U4_g')) ) price = elem.text.strip().replace('₹', '').strip() print('price of the item is:', price) driver.close()
这样就能稳定提取到你需要的价格数值了。
内容的提问来源于stack exchange,提问作者Rahul Sharma
相关产品推荐
相关产品推荐

