使用 rvest 抓取网站 - 选择 html 节点?

Using rvest to scrape a website - Selecting html node?

我有一个关于我最近的 r 背心擦伤的问题。

我想抓取此页面(以及其他一些股票): http://www.finviz.com/quote.ashx?t=AA&ty=c&p=d&b=1

我需要一份市值清单,即第二行第一个方框。 此列表应包含大约 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 的正确节点的任何想法?

我正在使用 firebug/firefinder 查看网页。

不确定这是否是您想要的,因为我找不到带有 aprox 的列表。 50-100 只股票。

但对于有价值的东西,使用 SelectorGadget I came up with this node .table-dark-row:nth-child(2) .snapshot-td2:nth-child(2), to select the Market Cap (first box in the second line of this page 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 找到您想要的。

希望这对您有所帮助。

编辑:

这里是完整的解决方案:

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()