gpt4 book ai didi

r - 使用 R 进行快速 url 查询

转载 作者:行者123 更新时间:2023-12-02 09:26:39 32 4
gpt4 key购买 nike

您好,必须查询网站 10000 次,我正在寻找一种真正快速的方法来使用 R 来实现此目的

作为模板网址:

url <- "http://mutationassessor.org/?cm=var&var=7,55178574,G,A"

我的代码是:

url  <- mydata$mutationassessorurl[1]
rawurl <- readHTMLTable(url)
Mutator <- data.frame(rawurl[[10]])

for(i in 2:27566) {
url <- mydata$mutationassessorurl[i]
rawurl <- readHTMLTable(url)
Mutator <- smartbind(Mutator, data.frame(rawurl[[10]]))
print(i)
}

使用microbenchmark 我有 680 毫秒的查询时间。我想知道是否有更快的方法!

谢谢

最佳答案

加速 http 连接的一种方法是保持连接打开请求之间。以下示例显示了它所带来的差异对于 httr。第一个选项与默认行为最相似RCurl。

library(httr)
test_server <- "http://had.co.nz"

# Return times in ms for easier comparison
timed_GET <- function(...) {
req <- GET(...)
round(req$times * 1000)
}

# Create a new handle for every request - no connection sharing
rowMeans(replicate(20,
timed_GET(handle = handle(test_server), path = "index.html")
))

## redirect namelookup connect pretransfer starttransfer
## 0.00 20.65 75.30 75.40 133.20
## total
## 135.05

test_handle <- handle(test_server)
# Re use the same handle for multiple requests
rowMeans(replicate(20,
timed_GET(handle = test_handle, path = "index.html")
))

## redirect namelookup connect pretransfer starttransfer
## 0.00 0.00 2.55 2.55 59.35
## total
## 60.80

# With httr, handles are automatically pooled
rowMeans(replicate(20,
timed_GET(test_server, path = "index.html")
))

## redirect namelookup connect pretransfer starttransfer
## 0.00 0.00 2.55 2.55 57.75
## total
## 59.40

请注意 namelookup 和 connect 的区别 - 如果您正在共享句柄,每个操作只需执行一次,这样可以节省相当多的时间。

有相当多的请求内变化 - 平均来说最后两个方法应该非常相似。

关于r - 使用 R 进行快速 url 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22940150/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com