Результат символа (0) при попытке веб-очистки текста - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь автоматизировать удаление слов практики с этого сайта https://www.livechatinc.com/typing-speed-test/#/, но получаю результат 'character (o)'.

Я читаю URL с помощью read_html, затем использую его дляx в html_nodes () вместе с селектором css для практических слов, а затем прочитал его с помощью html_text, но я каждый раз получаю символ (0).

Понятия не имею, что я делаю неправильно, вот код:

library('rvest')
url <- read_html("https://www.livechatinc.com/typing-speed-test/#/")

wbpg_html <- html_nodes(url,".test-prompt") 
wbpg_txt <- html_text(wbpg_html)

> wbpg_txt
 character(0)

Я просто хотел бы вставить слова практики в r, позже выяснить, как их автоматизировать.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 16 июня 2019

Список слов происходит из этого js-файла: https://cdn.livechatinc.com/gtt/app.3.8.min.js

Вы можете попытаться вывести выражение с помощью R, используя:

e\\.exports=\\{words:\\[(.*?)\\]

Я провел быстрый тест с python:

import requests, re

r = requests.get('https://cdn.livechatinc.com/gtt/app.3.8.min.js')
p = re.compile(r'e\.exports={words:\[(.*?)\]')
words = p.findall(r.text)
print(words)

С г

library(rvest)
library(stringr)
library(readr)
library(dplyr)
urlmatrix <- paste(readLines('https://cdn.livechatinc.com/gtt/app.3.8.min.js', warn=FALSE), 
                                collapse=" ", fileEncoding = "UTF-16") %>%
                                str_match(., 'e\\.exports=\\{words:\\[(.*?)\\]')
words <- strsplit(as.character(as.list(urlmatrix[,2])[[1]]), '","')
words[[1]][1] <- substring(words[[1]][1],2,nchar(words[[1]][1]))
words[[1]][length(words[[1]])] <- gsub('\\"', "", words[[1]][length(words[[1]])])
...