#r #web #web-scraping
#r #веб #очистка веб-страниц
Вопрос:
Во-первых, большое спасибо за вашу помощь и ваше внимание,
Я хочу извлечь что-то с этой страницы http://ieeexplore.ieee.org/document/6875970/keywords После того, как вы зарегистрируетесь на веб-сайте, я заинтересован в том, чтобы в Интернете была собрана информация, связанная с
-
Ключевые слова IEEE
-
ПРОВЕРКА: контролируемая индексация
-
ПРОВЕРКА: неконтролируемая индексация
ключевые слова библиотеки install.packages(«rvest»)(rvest)<-read_html(«http://ieeexplore.ieee.org/document/6875970/keywords «)
ключевые слова %>% a<-html_node(lego_movie,»текст / javascript») %>% html_text(a)
Но это не работает !
Не могли бы вы мне помочь?
Большое спасибо!
Комментарии:
1. Не могли бы вы быть немного более конкретными, чем «Но это не работает!»
2. Да, конечно! Я хочу извлечь все ключевые слова с веб-сайта, такие как геопространственный анализ, принятие решений, … Но когда я выполняю свои несколько строк кода, что я и сделал, это «Ошибка в tokenize (css): неожиданный символ ‘/’ найден в позиции 5». Поэтому я боюсь, что мой код не соответствует тому, что я ожидаю. Потому что я новичок в R и просмотрел некоторые учебные пособия по R (Lego_movies, но они написаны на HTLM). Если я не ошибаюсь, моя веб-страница написана на JavaScript. Спасибо за вашу помощь 🙂
3. Я подумал о том, чтобы переформатировать это для вас, но у вас, по крайней мере, происходит
%>% a <-
что-то странное, чего никогда не должно произойти. Помимо этого, на сайте, который вы надеетесь очистить, есть условия использования… «Пользователям-гостям / участникам НЕ разрешается выполнять следующее: […] Передавать в электронном виде, по электронной почте или любым другим протоколам передачи файлов, любую часть IEEE Xplore. Возможно, вы захотите рассмотреть, разрешено ли вам использовать эту информацию, как только она у вас будет.
Ответ №1:
# if you get an error while importing, just use install.packages('jsonlite') and /or install.packages('stringr')
library(jsonlite)
library(stringr)
# the ieee doc url we're interested in
url <- 'http://ieeexplore.ieee.org/document/6875970/keywords'
# read the document as text, no HTML parsing at all
doc <- readLines(url)
# after inspecting it, we notice it's built with angular-js,
# and the data we need to extract is defined as a single javascript variable.
# so, we first find the id of the line which defines
# the javascript variable containing the tags
idx <- which(!is.na(str_match(doc, 'global.document.metadata=')))
# get the line ;-)
line <- doc[idx]
# since it's a javascript variable, we need to massage it
# a little to be able to read it as json.
# step 1: remove the "var global.document.metadata=" part (everything before the actual json)
line <- str_replace(line, '^[^{]*', '')
# step 2: remove the trailing ';' symbol
line <- str_replace(line, ';$', '')
# now we can parse the json data
df <- fromJSON(line)
# and get the information we need
df$keywords[df$keywords$type == 'IEEE Keywords',]$kwd[[1]]
df$keywords[df$keywords$type == 'INSPEC: Controlled Indexing',]$kwd[[1]]
df$keywords[df$keywords$type == 'INSPEC: Non-Controlled Indexing',]$kwd[[1]]
пример вывода:
[1] "CTC incident datasets"
[2] "proactive spatiotemporal resource allocation"
[3] "predictive visual analytics"
[4] "community policing"
[5] "law enforcement"
Комментарии:
1. Это работает!!! Большое спасибо Леонардо Фодераро! Ты лучший !!!! И, кроме того, это супер-понятно!
2. Действительно спасибо! Очень, очень полезно ! Пожалуйста, дайте мне знать, если однажды я смогу помочь вам в области финансов или статистики 🙂
3. (Я не упомянул финансы, потому что это далеко от моих навыков, лол)
4. Леонардо, ты можешь отправить мне электронное письмо? У меня есть вопрос, на который, я думаю, вы можете ответить. rms7272 в gmail.com Просто замените это на на @
5. Привет, Райан, я только что отправил тебе письмо с темой «контакт из StackOverflow».