2017-03-28 16 views
0

私はRでコーディングしているWebを練習していますが、どのWebサイトで試しても問題ありません。Web-scraping in R

例えば、

https://www.thecompleteuniversityguide.co.uk/league-tables/rankings?s=Music

私の目標は、すべての77の学校の名前を抽出することである(ロンドン・メトロポリタンへのオックスフォード)

だから私は試してみました...

library(rvest) 
url_college <- "https://www.thecompleteuniversityguide.co.uk/league-tables/rankings?s=Music" 
college <- read_html(url_college) 
info <- html_nodes(college, css = '.league-table-institution-name') 
info %>% html_nodes('.league-table-institution-name') %>% html_text() 

をよりF12、私はすべての学校の名前がクラス '.league-table-institution-name'の下にあることを知ることができました...それがhtml_nodesでそれを書いた理由です...

どうしたのですか?

+1

あなたは答えを待っている間、あなたはprbly SHLD https://www.thecompleteuniversityguide.co.uk/terms-and-conditions/ – hrbrmstr

答えて

3

あなたは二回html_nodes()を実行していることが表示されます、infoに正しいない文字ベクトルを、最初collegeに(正しい)xml_documentと。

url_college %>% 
    read_html() %>% 
    html_nodes('.league-table-institution-name') %>% 
    html_text() 

をし、その後、あなたは学校名をクリーンアップするために追加のステップが必要になります。:

代わりにこれを試してみてくださいこれは、提案された:

%>% 
    str_replace_all("(^[^a-zA-Z]+)|([^a-zA-Z]+$)", "") 
+0

を読んで、私はそれを得た...ことができますが、 OR演算子を使用する必要がある理由を説明してください。 str_replace_all( "(^ [^ a-zA-Z] +)|([^ a-zA-Z] + $)"、 "")?両方のパターンを ""で置き換えるので、AND演算子である必要はありませんか? – wjang4

+0

誰かが編集を示唆するかもしれないことは、それを説明することができます:) – neilfws