Я пытаюсь использовать R для перехода к определенной странице Википедии на основе строкового значения. Поскольку у меня нет точных URL-адресов в Википедии для списка ключевых слов, которые я ищу (например, «Prog rock», поскольку поисковый запрос относится к URL-адресу, заканчивающемуся в Progressive_rock), я думал, что передать ключевые слова в Google " Feeling Lucky ", а затем очистить HTML на странице Википедии.Отправить в Google или в форму поиска в Википедии, используя R
В процессе попытки я обнаружил, что у меня возникли проблемы с отправкой любой формы с R. Может ли кто-нибудь опубликовать воспроизводимый пример для запуска запроса Google с сеансом R и возврата HTML-страницы на верхнюю страницу или Поиск в Википедии на основе поисковых запросов?
Я использую отличный пакет rvest Хэдли для большинства моих веб выскабливания, но не был в состоянии получить этот аспект работу даже на пример взят из руководства rvest:
goog<-html_session("https://www.google.com")
search <- html_form(html("https://www.google.com"))[[1]]
search.mod<-set_values(search, q = "My little pony")
submit_form(goog, search.mod, submit='btnI')
Каких возвращает:
Error: length(url) == 1 is not TRUE
Я попытался поиск в Википедии непосредственно, а с той же удачи:
url<-"http://en.wikipedia.org/wiki/Main_Page"
wiki<-html_session(url)
search.form<-html_form(wiki)[[1]]
form.mod<-set_values(search.form, search="Frank Zappa")
submit_form(wiki,form.mod,submit='go')
Которая возвращает ту же ошибку. Я подозреваю, что делаю какую-то невероятно простую ошибку, но я не могу понять, что это такое.
Многие из примеров онлайн-поиска для форм поиска, похоже, используют пакеты httr, RCurl и RSelenium, но я не нашел конкретного примера в Google или Wikipedia, который работает, и многие из примеров выглядят устаревшими поскольку Google изменил формат поиска «Я чувствую себя счастливым». Я также посмотрел на пакет WikipediR, как было предложено по аналогичному вопросу (Sumbit queries on wikipedia through R), но у него нет функции поиска.
Вы также столкнуться с «Ошибка в форме $ поля: $ operator недопустим для атомных векторов "? Это сообщение появилось в той же точке моего кода. В любом случае, это сообщение похоже на ваше. Я тоже не мог решить проблему. – maj