使用 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()
我有一个关于我最近的 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()