Как наскрести число в R? - PullRequest
0 голосов
/ 01 мая 2020

Я хочу вычеркнуть число 22,88 из "Apple PE Ratio: 22,88 на 30 апреля 2020 года" по следующей ссылке:

https://ycharts.com/companies/AAPL/pe_ratio

, но Потому что это второй раз, когда я задаю подобный вопрос, может кто-нибудь объяснить мне вкратце, как создан код?

Ответы [ 2 ]

2 голосов
/ 01 мая 2020

Вот решение с использованием rvest и stringr (для извлечения строки):

library(rvest)
library(stringr)

url <- 'https://ycharts.com/companies/AAPL/pe_ratio'
webpage <- url %>% read_html()

PEvalue<- webpage %>% html_nodes('span[id="pgNameVal"]') %>% 
                         html_text() 

answer <- str_extract(PEvalue, "(^[0-9.]+)")

Или извлеките это: gsub("(^[0-9.]+).*", "\\1", PEvalue), чтобы избежать загрузки пакета stringr.

1 голос
/ 01 мая 2020

Быстрый и грязный раствор в базе R.

HTML = readLines("https://ycharts.com/companies/AAPL/pe_ratio")
Tag = grep("<span[^<>]*pgNameVal[^<>]*>.*?</span>", HTML)
as.numeric(sub(".*?(\\d+\\.\\d+).*", "\\1", Tag))
22.88
...