2016-03-24 6 views
0

Я пытаюсь скрести для каждой страны, ее таблица со всеми сопутствующими ВИЧ/СПИД НПО с использованием этой ссылке: https://www.unodc.org/ngo/showExtendedSearch.doRSelenium: цикл по всем значениям в Dropboxes

Я могу перейти к URL и выберите «ВИЧ/СПИД ". Но теперь мне также нужно извлечь для обоих областей dropboxes '' и 'country' все значения, чтобы я мог использовать их внутри цикла, чтобы последовательно перерисовывать таблицу для каждой страны. Как я могу собирать значения для обоих ящиков? Мой код до сих пор ниже:

#load library 
library(RSelenium) 

#Specify remote driver 
remDr <- remoteDriver(browserName='firefox') 

#Initialise session 
remDr$open() 

#navigate to advanced search page 

url <- "https://www.unodc.org/ngo/showExtendedSearch.do" 
remDr$navigate(url) 

#Click 'HIV/AIDS' filter 
webElem <- remDr$findElement(using = 'css', 
         value = '#applicationArea > form > table > tbody > tr > td > table:nth-child(7) > tbody > tr:nth-child(2) > td > table > tbody > tr > td:nth-child(2) > table > tbody > tr:nth-child(3) > td:nth-child(4) > input[type="checkbox"]') 

webElem$clickElement() 

ответ

0

Используйте Firebug или Developer Tools для определения XPath элементов меню выпадающего затем использовать getElementText для получения значений:

region_element <- remDr$findElement('xpath', '//*[@id="applicationArea"]/form/table/tbody/tr/td/table[2]/tbody/tr[2]/td/table/tbody/tr[1]/td[2]/select') 
regions <- strsplit(region_element$getElementText()[[1]], "\n") 

country_element <- remDr$findElement('xpath', '//*[@id="applicationArea"]/form/table/tbody/tr/td/table[2]/tbody/tr[2]/td/table/tbody/tr[2]/td[2]/select') 
countries <- strsplit(country_element$getElementText()[[1]], "\n") 

R> print(regions[[1]]) 
[1] "Middle East and Northern Africa" "Eastern Africa"     
[3] "Western Africa"     "Central and Southern Africa"  
[5] "Northern America"     "Central America and the Caribbean" 
[7] "Latin America"      "Central and Western Asia"   
[9] "Southern and Eastern Asia"   "Europe"       
[11] "Oceania"       
R> print(head(countries[[1]])) 
[1] "Afghanistan" "Albania"  "Algeria"  "American Samoa" "Andorra"  
[6] "Angola" 
Смежные вопросы