我正在分析JS生成的网页,如下所示: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.Firefox()
driver.get('https://www.consumerbarometer.com/en/graph-builder/?question=M1&filter=country:singapore,canada,mexico,brazil,argentina,united_states,bulgaria,austria,belgium,croatia,czech_republic,denmark,estonia,finland,france,germany,greece,hungary,italy,ireland,latvia,lithuania,norway,netherlands,poland,portugal,russia,romania,serbia,slovakia,spain,slovenia,sweden,switzerland,ukraine,united_kingdom,australia,china,israel,hong_kong_sar,japan,korea,new_zealand,malaysia,taiwan,turkey,vietnam')
// wait for svg to appear
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.TAG_NAME, 'svg')))
for text in driver.find_elements_by_class_name('bar-text-label'):
print(text.text)
driver.close()
除了从类bar-text-label中获取text之外,我还希望从HTML5数据属性中获取值。例如,我希望能够从中解析76。
这在硒中有可能吗?
我试过以下两种方法,都没有成功:for text in driver.find_elements_by_class_name('bar'):
print(data_value.text)
for data in driver.find_elements_by_xpath('//*[contains(@data-value)]/@data-value'):
print(data.text)