Сбор данных с веб-страницы в R - доступ к нескольким страницам
Я следую за своим вопросом со вчерашнего дня - собираю данные через выпадающий список в R 1
Во-первых, мне нужно получить все 50 тыс. строк данных всех врачей на этой странице: http://www.lkcr.cz/seznam-lekaru-426.html Я знаю, как получить их на одной странице:
oborID<-"48"
okresID<-"3702"
web<- "http://www.lkcr.cz/seznam-lekaru-426.html"
extractHTML<-function(oborID,okresID){
query<-list('filterObor'="107",'filterOkresId'="3201",'do[findLekar]'=1)
query$filterObor<-oborID
query$filterOkresId<-okresID
html<- POST(url=web,body=query)
html<- content(html, "text")
html
}
IDfromHTML<-function(html){
starting<- unlist(gregexpr("filterId", html))
ending<- unlist(gregexpr("DETAIL", html))
starting<- starting[seq(2,length(starting),2)]
if (starting != -1 && ending != -1){
strings<-c()
for (i in 1:length(starting)) {
strings[i]<-substr(html,starting[i]+9,ending[i]-18)
}
strings<-list(strings)
strings
}
}
Тем не менее, я знаю, что загрузка всей страницы всего за несколько строк текста довольно неэффективна (но работает!:) Не могли бы вы дать мне совет, как сделать этот процесс более эффективным?
Я также встречал некоторые страницы с более чем 20 врачами в списке (например, комбинация "Brno-město" и "chirurgie". Такие данные перечислены и доступны через список гиперссылок в конце формы. Мне нужно получить доступ к каждой из этих страниц и используйте там код, который я представил здесь. Но я думаю, что я должен передать туда некоторые куки.
Помимо этого, комбинация "Praha" и "chirurgie" также проблематична, потому что существует более 200 записей, поэтому страница применяет некоторый сценарий, а затем мне нужно нажать кнопку "další" и использовать тот же метод, что и в предыдущий абзац.
Не могли бы вы мне помочь?