Có cách nào để giải mã các liên kết tinyURL trong R để tôi có thể xem các trang web mà chúng thực sự đề cập đến không?giải mã tinyurl trong R để nhận đường dẫn url đầy đủ?
Trả lời
Dưới đây là một giải pháp nhanh chóng và dơ bẩn, nhưng nên hoàn thành công việc:
library(RCurl)
decode.short.url <- function(u) {
x <- try(getURL(u, header = TRUE, nobody = TRUE, followlocation = FALSE))
if(class(x) == 'try-error') {
return(u)
} else {
x <- strsplit(x, "Location: ")[[1]][2]
return(strsplit(x, "\r")[[1]][1])
}
}
Biến 'u' bên dưới chứa một url rút ngắn đáng, và một url thường xuyên.
u <- c("http://tinyurl.com/adcd", "http://www.google.com")
Sau đó, bạn có thể nhận được kết quả mở rộng bằng cách làm như sau.
sapply(u, decode.short.url)
Điều trên sẽ phù hợp với hầu hết các dịch vụ rút ngắn URL, không chỉ tinyURL. Tôi nghĩ.
HTH
Tony Breyal
Tôi không biết R nhưng nói chung, bạn cần thực hiện yêu cầu http đến url tinyurl. Bạn sẽ nhận được phản hồi 301 với url thực.
library(RCurl)
decode.short.url <- function(u) {
x <- try(getURL(u, header = TRUE, nobody = TRUE, followlocation = FALSE))
if(class(x) == 'try-error') {
return(u)
} else {
x <- strsplit(x, "Location: ")[[1]][2]
return(strsplit(x, "\r")[[1]][1])
}
}
(u <- c("http://tinyurl.com/adcd", "http://tinyurl.com/fnqsh"))
(sapply(u, decode.short.url))
tôi đã sử dụng mã Tony Breyal, nhưng chức năng trở NA
giá trị đối với những URL mà không có sự chuyển hướng URL. Mặc dù Tony đã liệt kê "google.com" trong ví dụ của mình, tôi nghĩ rằng Google chuyển hướng bạn trong bất kỳ trường hợp nào đối với một số loại phiên bản địa phương của google.com.
Dưới đây là cách tôi sửa đổi mã của Tony để đối phó với điều đó:
decode.short.url <- function(u) {
x <- try(getURL(u, header = TRUE, nobody = TRUE, followlocation = FALSE))
if(class(x) == 'try-error') {
print(paste("***", u, "--> ERORR!!!!"))
return(u)
} else {
x <- strsplit(x, "Location: ")[[1]][2]
x.2 <- strsplit(x, "\r")[[1]][1]
if (is.na(x.2)){
print(paste("***", u, "--> No change."))
return(u)
}else{
print(paste("***", x.2, "--> resolved in -->", x.2))
return(x.2)
}
}
}
u <- list("http://www.amazon.com", "http://tinyurl.com/adcd")
urls <- sapply(u, decode.short.url)
- 1. Python: Chuyển đổi TinyURL đó (bit.ly, tinyurl, ow.ly) thành URL đầy đủ
- 2. Nhận đường dẫn tệp đầy đủ trong java
- 3. Nhận đường dẫn đầy đủ của các tệp trong PowerShell
- 4. Nhận tên miền từ URL đầy đủ
- 5. Nhận đường dẫn đầy đủ để nộp trong khi gỡ lỗi bằng IIS Express
- 6. Đường dẫn đầy đủ của tệp Xcode 4
- 7. Nhận URL đầy đủ của hành động trong ASP.NET MVC
- 8. xây dựng tên đường dẫn đầy đủ trong python,
- 9. Làm cách nào để nhận URL đầy đủ vào hình ảnh trong CakePHP?
- 10. Đường dẫn đầy đủ của cá tương tác Shell
- 11. jquery - nhận đường dẫn url?
- 12. Cách lấy đường dẫn đầy đủ của StreamWriter
- 13. Đường dẫn đầy đủ từ đầu vào tệp bằng jQuery
- 14. Xem đường dẫn chuyển hướng đầy đủ và mã trạng thái HTTP trong Chrome
- 15. Sử dụng URL đầy đủ với Restangular
- 16. Cách nén thư mục không có đường dẫn đầy đủ
- 17. Tìm đường dẫn đầy đủ của trình thông dịch Python?
- 18. Tìm tên tệp từ đường dẫn tệp đầy đủ
- 19. Nhận URL trang chủ đầy đủ tại Kohana 3
- 20. django url đầy đủ trong get_absolute_url
- 21. SharePoint nhận URL đầy đủ của trang hiện tại ở mã phía sau
- 22. Url helper cho url đầy đủ trong asp.net MVC-3
- 23. Sử dụng Beautiful Soup để có được URL đầy đủ trong mã nguồn
- 24. Django-MPTT đường dẫn đầy đủ đến trang con làm thế nào để thực hiện?
- 25. svn copy -r [số sửa đổi] [url] [đường dẫn]
- 26. Làm thế nào để tạo nhiều thư mục từ một đường dẫn đầy đủ trong C#?
- 27. Làm thế nào để không viết đường dẫn mô-đun đầy đủ trong ruby?
- 28. Cách đúng để tìm tệp theo "đường dẫn đầy đủ" trong API Google Drive v2
- 29. Cú pháp và ngữ pháp URL có thể Đầy đủ
- 30. Làm cách nào để chuyển đổi đường dẫn đầy đủ sang đường dẫn tương đối bằng cách sử dụng perl?
Tony, bạn có hai tài khoản? –
@ JD-Long Có, nhưng tôi không biết cách kết hợp hai tài khoản. Một ở đầu sử dụng OpenID. Tôi thậm chí không thể nhớ làm thế nào để đăng nhập vào một ở phía dưới (với ảnh chuột nguy hiểm). Tôi mới đăng bài trên stackoverflow. –