2017-05-24 15 views
1

私はNational Weather ServiceのWebページを掻き取り、テキストの特定の部分のみを取り出してRの文字オブジェクトに変換しようとしています。 NWSページに示されているように。 (下記参照)は、HTMLテキストの特定の部分を削りますR

私はrvestパッケージでウェブページを掻き集めており、XMLパッケージでもいくつかのコードを試しています。

天気予報のURLが含まれています。

weather_con <- read_html("http://forecast.weather.gov/product.php?site=TWC&issuedby=TWC&product=AFD&format=txt&version=1&glossary=1") 

weather_con <- weather_con %>% 
html_nodes("#localcontent") %>% 
    html_text() 

また、私はこのコードページからすべてのテキストを読み込むコードのこれらのセットの

weather_con <- getURL("http://forecast.weather.gov/product.php?site=TWC&issuedby=TWC&product=AFD&format=txt&version=1&glossary=1") 

weather_con <- htmlParse(weather_con, asText = T) 

両方でrvestとXMLパッケージの両方を使用してみました。私は他のオプションを試してみましたが、ページのノードを見つけようとしてテキストの特定の部分を擦ってみましたが、役に立たないものは何も見つかりませんでした。私はHTMLの経験が少ないので、ここで簡単に何かを逃しているかもしれません。

私がウェブページから抜き出すのは、概説の段落です。それはページの上部近くの小さな段落であり、便宜的に、段落が終わるところの下に2つの& &の記号で終わります。

多分私はその段落を直接掻き集めることができるsubstr機能のようなものが必要です。しかし、私はrvestやXMLで何かを見つけてその仕事をしたいと考えていました。

提案がありますか?

答えて

2

weather_conが既に必要なテキストを持っていますが、それは、テキストのすべての残りの部分と一緒に来ていただきありがとうございます。

それを抽出する1つの方法は、正規表現を使用しています。

synopsis = regmatches(x = weather_con, 
         m = regexpr(pattern = "SYNOPSIS[^&]*", 
            text = weather_con)) 

これは、SYNOPSISから最初の非&までのすべてをキャプチャします。

結果:シノプシスは&が含まれてい

[1] "SYNOPSIS...Strong high pressure aloft will 
maintain well above\naverage temperatures today. Thursday 
and Friday will see us between\nlow pressure developing 
north of the area and high pressure shifting\nsouthward. 
As a result, expect gusty winds and several degrees 
of\ncooling. Strengthening high pressure this weekend 
will again push\ntemperatures above average.\n\n" 

なら、あなたは、単語の議論までテキストをキャプチャすることができます。

synopsis2 = regmatches(x = weather_con, 
         m = regexpr(pattern = "SYNOPSIS.*DISCUSSION", 
            text = weather_con)) 

結果は似ています。この結果はabove average.\n\n&&\n\n.DISCUSSIONで終了します

+0

これは素晴らしいです!どうもありがとうございました。 – user3720887

+0

段落を横切って/ nを取り除く方法はありますか? – user3720887

+0

そこに自分自身を考え出した。私はあまりにも早く尋ねたgsub( "\ n"、概要) – user3720887

関連する問題