Raspe valores de tags de seleção / opção HTML em R
Estou tentando (sem êxito) raspar alguns dados de um site (www.majidata.co.ke) usando R. Eu consegui raspar o HTML e analisá-lo, mas agora um pouco inseguro sobre como extrair os bits, na verdade necessidade!
Usando oXML
biblioteca raspe meus dados usando este código:
majidata_get <- GET("http://www.majidata.go.ke/town.php?MID=MTE=&SMID=MTM=")
majidata_html <- htmlTreeParse(content(majidata_get, as="text"))
Isso me deixa com (Grande) XMLDocumentContent. Há uma lista suspensa na página da Web e quero extrair os valores dela (que se relacionam aos nomes e ao número de identificação de diferentes cidades). Os bits que quero extrair são os números entre<option value ="XXX">
e o nome a seguir em maiúsculas.
<div class="regiondata">
<div id="town_data">
<select id="town" name="town" onchange="town_data(this.value);">
<option value="0" selected="selected">[SELECT TOWN]</option>
<option value="611">AHERO</option>
<option value="635">AKALA</option>
<option value="625">AWASI</option>
<option value="628">AWENDO</option>
<option value="749">BAHATI</option>
<option value="327">BANGALE</option>
Idealmente, gostaria de tê-los em um data.frame em que a primeira coluna é o número e a segunda coluna é o nome, p.
ID Name
611 AHERO
635 AKALA
625 AWASI
etc.
Não tenho muita certeza para onde ir daqui. Eu tinha pensado em usar regex e corresponder ao padrão contido no texto, embora tenha lido em vários fóruns que essa é uma má idéia e que é melhor / mais eficiente usar o xpath. Não sei por onde começar com isso, além de pensar que eu preciso usarxpathApply
de alguma forma.