我试图使用selenium来帮助从一个使用javascript加载信息的网站中检索数据。您可以在这里找到链接:Animal population。该页面显示了一些可选择的字段,对于我的目的,我想检索2011年英国蜜蜂数量的数据。一旦选择了可选择的字段,页面将加载一个包含相应数据的表格。我只想获取“整个国家”的“人口”和“密度”数字。迄今为止,我的代码只选择了年份、国家和物种字段,并返回表格后,它定位了“整个国家”的字段(请随时为改进我的现有代码提供建议)。我还没有能够检索整个国家的人口和密度信息,我已经尝试使用xpath和“后续兄弟”,但它显示了异常来定位元素。我也不想依靠行/单元格的位置,因为我还将尝试获取接下来几年的这些信息,而表格字段将改变位置。
感谢您的帮助。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get('https://www.oie.int/wahis_2/public/wahid.php/Countryinformation/Animalpopulation')
select = Select(driver.find_element_by_id('country6'))
select.select_by_value('GBR')
select = Select(driver.find_element_by_id('year'))
select.select_by_value('2011')
try:
element = WebDriverWait(driver, 40).until(EC.presence_of_element_located((By.CLASS_NAME, "TableContent ")))
print element
select = Select(driver.find_element_by_id('selected_species'))
select.select_by_value('1')
except:
print "Not found"
country_td = driver.find_element(By.XPATH, '//td/b[text()="The Whole Country"]')
#population_td = driver.find_element(By.XPATH, '//td/b[text()="The Whole Country"]/following-sibling::text()')
print country_td.text
感谢您的帮助。