Я пытаюсь прочитать источник веб-страницы в R и обрабатывать его как строки. Я пытаюсь извлечь абзацы и удалить теги html из текста абзаца. Я бегу в следующей задаче:Удаление html-тегов из строки в R
Я попытался реализовать функцию, чтобы удалить HTML-теги:
cleanFun=function(fullStr)
{
#find location of tags and citations
tagLoc=cbind(str_locate_all(fullStr,"<")[[1]][,2],str_locate_all(fullStr,">")[[1]][,1]);
#create storage for tag strings
tagStrings=list()
#extract and store tag strings
for(i in 1:dim(tagLoc)[1])
{
tagStrings[i]=substr(fullStr,tagLoc[i,1],tagLoc[i,2]);
}
#remove tag strings from paragraph
newStr=fullStr
for(i in 1:length(tagStrings))
{
newStr=str_replace_all(newStr,tagStrings[[i]][1],"")
}
return(newStr)
};
Это работает для некоторых тегов, но не все теги, пример, когда это не удается в следующей строке:
test="junk junk<a href=\"/wiki/abstraction_(mathematics)\" title=\"abstraction (mathematics)\"> junk junk"
цель будет получать:
cleanFun(test)="junk junk junk junk"
Однако эта лань Кажется, он работает. Я думал, что это может быть связано с длиной строки или escape-символами, но я не мог найти решение, связанное с ними.
Отредактировано, чтобы исправить ошибки, допущенные при вводе кода. –
Здесь многое происходит ... Для начала это R, поэтому нет '.'. Вы в основном ищете 'gsub' и соответствующее регулярное выражение (в этом случае уже ответили здесь: http: //stackoverflow.com/questions/10225690/removing-data-with-tags-from-a-vector/10225883 # 10225883). Существуют и другие проблемы с кодом ('dim (tagLoc) [1]' не делает то, что вы так думаете), но я не думаю, что это вопрос вашего вопроса. – alexwhan