我正在尝试自动从该站点https://www.livechatinc.com/typing-speed-test/#/抓取练习单词,但得到的结果是'character(o)'。
我用read_html读取了url,然后将html_nodes()中的x与练习单词的css选择器一起用于x,然后使用html_text进行了读取,但是每次都得到character(0)。
不知道我在做什么错,这是代码:
end
我只想把练习词放到r中,找出以后如何使其自动化。
感谢您的帮助。
答案 0 :(得分:0)
单词列表来自以下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)
使用r
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]])])