我正试图从220个简单网站列表中删除单个表格。每个站点上都有一个表,我想抓取并放入一个字符向量,然后将所有220个字符向量转换为单个数据帧。
检查网页是否存在,200 = ok,404 =找不到页面。
UrlListCheck <- unlist ( lapply(lapply(url_list, html_session), function(x) {
lapply(x$response$status_code, identity)
} ))
所有220页都可以。
检查url格式以将每个html_table下载为字符向量
215 -> x ; html_table(html_session(url_list[[x]]))[[1]][,2]
[1] "" "field2" ""
[4] "field4" "" "field6"
[7] "field7"
上述方法适用于我手动检查的所有网址。
html_session在url列表上的lapply工作正常。
test1 <- lapply(url_list, html_session)
但是html_table函数在列表上引发了lapply错误。
test2 <- lapply(test1, html_table)
Error in matrix(NA_character_, nrow = n, ncol = p):
invalid 'ncol' value (too large or NA)
有什么建议吗?
以下代码的输出是我最终想要的,这对我在同一台服务器上具有相同格式的许多其他网页都有用。
TablesList <- lapply(url_list, function(x) {
html_table(html_session(x))[[1]][,2] } )
矩阵错误(NA_character_,nrow = n,ncol = p): 无效&#39; ncol&#39;值(太大或NA)*
ResultDF <- as.data.frame(do.call(rbind, TablesList))