-2

HTML Web サイトの HTML テーブルからデータをスクレイピングするのはクールで簡単です。ただし、Web サイトが html で記述されておらず、ブラウザーに関連情報を表示する必要がある場合、たとえば、それが ASP Web サイトである場合や、データがコード内になく Java コードから入ってくる場合、どうすればこのタスクを実行できますか?

ここにあるように: http://www.bwea.com/ukwed/construction.asp .

VBA for Excel を使用すると、Web サイトを呼び出す関数と IE セッションを作成し、基本的に Web サイトのコンテンツをコピーして貼り付けることができます。Rで同様のことをする機会はありますか?

4

2 に答える 2

3

これは通常のHTMLであり、データをスクレイピングした後にクリーンアップする必要があるという通常の問題が伴います。

以下はトリックを行います:

  • readHTMLTableパッケージ内のページを読むXML
  • これはページの5番目のテーブルなので、5番目の要素を抽出します
  • 最初の行を取得して、テーブルの名前に割り当てます
  • 最初の行を削除します

コード:

x <- readHTMLTable("http://www.bwea.com/ukwed/construction.asp", 
                   as.data.frame=TRUE, stringsAsFactors=FALSE)
dat <- x[[5]]
names(dat) <- unname(unlist(dat[1, ]))

結果のデータ:

dat <- dat[-1, ]

'data.frame':   39 obs. of  10 variables:
 $ Date                : chr  "September 2011" "August 2011" "August 2011" "August 2011" ...
 $ Wind farm           : chr  "Baillie Wind farm - Bardnaheigh Farm" "Mains of Hatton" "Coultas Farm" "White Mill (Coldham ext)" ...
 $ Location            : chr  "Highland" "Aberdeenshire" "Nottinghamshire" "Cambridgeshire" ...
 $ Power(MW)           : chr  "2.5" "0.8" "0.33" "2" ...
 $ Turbines            : chr  "21" "3" "1" "7" ...
 $ MW Capacity         : chr  "52.5" "2.4" "0.33" "14" ...
 $ Annual homes equiv*.: chr  "29355" "1342" "185" "7828" ...
 $ Developer           : chr  "Baillie" "Eco2" "" "COOP" ...
 $ Latitude            : chr  "58 02 52N" "57 28 11N" "53 04 33N" "52 35 47N" ...
 $ Longitude           : chr  "04 07 40W" "02 30 32W" "01 18 16W" "00 07 41E" ...
于 2011-09-21T15:21:15.643 に答える