2016-11-08 7 views
0

最新のrベストスクラップについて質問があります。rvestを使用してウェブサイトをスクラップする - htmlノードを選択していますか?

私は、このページ(および他のいくつかの銘柄だけでなく)をこすりしたい: http://www.finviz.com/quote.ashx?t=AA&ty=c&p=d&b=1

私は2行目の最初のボックスで市場キャピタルのリストを必要としています。 このリストには約50〜100株が含まれているはずです。

私はそのためにrvestを使用しています。

library(rvest) 

html = read_html("http://www.finviz.com/quote.ashx?t=A") 

cast = html_nodes(html, "table-dark-row") 

問題は、私はhtml_nodesを回避できないということです。 html_nodesの正しいノードを見つける方法については何か考えてください。

私は、Webページをチェックアウトする放火犯/ firefinderを使用しています。

答えて

2

私はaproxでリストを見つけることができないので、これが望ましいかどうかはわかりません。 50〜100株。

SelectorGadget私はこのノード.table-dark-row:nth-​​child(2).snapshot-td2:nth-​​child(2)を使い、マーケットキャップ(最初このページの2行目のボックスhttp://www.finviz.com/quote.ashx?t=AA&ty=c&p=d&b=1)。

> library(rvest) 
> 
> html = read_html("http://www.finviz.com/quote.ashx?t=AA&ty=c&p=d&b=1") 
> 
> cast = html_nodes(html, ".table-dark-row:nth-child(2) .snapshot-td2:nth-child(2)") 
> cast 
{xml_nodeset (1)} 
[1] <td width="8%" class="snapshot-td2" align="left">\n <b>11.58B</b>\n</td> 
> 

これがまったく必要でない場合は、SelectorGadgetを使用して目的のものを探してください。

これが役に立ちます。

EDIT:

ここに完全なソリューション:

library(rvest) 

html = read_html("http://www.finviz.com/quote.ashx?t=AA&ty=c&p=d&b=1") 

cast = html_nodes(html, ".table-dark-row:nth-child(2) .snapshot-td2:nth-child(2)") 

html_text(cast) %>% 
    gsub(pattern = "B", replacement = "") %>% 
    as.numeric() 
+0

1はかなり合法的なようです。私は文字列から数値を抽出する方法を理解する必要があります。 –

+0

は、同じ 'rvest'パッケージの' html_text() '関数を使います。 'html_text(cast)'は "12.76B"を返します。それを数値に変換するには、Bを取り除く必要があります(私はそれが何を意味するか分かりません)。私は答えに編集しました。そこの完全なソリューションを確認してください。 – elikesprogramming

関連する問題