r - 如何在 R 中创建 url 列表时跳过不存在的 url
问题描述
我需要帮助生成一个 url 列表。我尝试在 R Studio 中使用以下行生成列表:
library(RCurl)
links_list = list()
for(j in 10:46) {
for(k in 10:99) {
urls <- c(paste0("https://www.tbmm.gov.tr/tutanaklar/TUTANAK/TBMM/d26/c0", j, "/tbmm260", j, "0", k, ".pdf")) #check 0
if(url.exists(urls) == TRUE)
links_list <- c(links_list, urls)
}
}
我的目标是跳过不存在的网址。在使用 if 之前,它运行良好,但结果是超过 3k 个 url 的列表,其中大多数是不存在的。
我正在使用 Windows 的 PC 上工作,但此代码不会生成 url 列表。运行完成后,该列表仍为空。我在mac上尝试了同样的方法。它以某种方式工作,但代码的运行并没有停止。
如果有人提出想法,我将不胜感激!
谢谢...
解决方案
如果您跟踪所有 url 的状态,那将是最简单的,这样您就可以更好地了解正在发生的事情。尝试:
j <- 10:46
k <- 10:99
df <- expand.grid(j=j,k=k)
library(dplyr)
h <- getCurlHandle()
df<-df %>%
mutate(url = paste0("https://www.tbmm.gov.tr/tutanaklar/TUTANAK/TBMM/d26/c0", j, "/tbmm260", j, "0", k, ".pdf"))%>%
mutate(exists=sapply(url,url.exists,curl=h))
在上面的代码中,每一行都df
会有一个 url 并跟踪url.exists()
. 然后你可以简单地过滤那些使用
df %>%
filter(exists)%>%
pull(url)
请注意,我在生成的几个 url 上进行了尝试,但它们都不存在,所以这可能是问题所在。
推荐阅读
- dc.js - 如何计算总销售额并使显示的总数动态化?
- jquery - 记录未使用 Servelt Jsp Ajax 加载到 DataTable
- python - 检查一组点是否描述了一个三角形
- bash - 从 bash 脚本激活 conda 环境
- wordpress - Apache 和 Wordpress 上的 http/2
- javascript - 如何在 LightningChart Js 中加载图表时隐藏 defaultAxisTickStretegy?
- python-3.x - 为什么 pygame.time.wait 在显示更新之前启动?
- java - 由模拟函数 spring boot 返回的 NPE
- java - 如何在 Java 中将 List<Long> 转换为 double[]
- python - 使用 python 获取虚拟环境