替換URL的一部分目前我的網站如何利用R
我想更換這部分
PAGENUMBER = 1
要與序列代替的數字,如1,2,3,..... n
我知道我需要使用paste
函數。但是我可以找到這個號碼並將其替換嗎?
替換URL的一部分目前我的網站如何利用R
我想更換這部分
PAGENUMBER = 1
要與序列代替的數字,如1,2,3,..... n
我知道我需要使用paste
函數。但是我可以找到這個號碼並將其替換嗎?
簡單的辦法就是將字符串分割到
var part1 = " http://www.amazon.com/Apple-generation-Tablet-processor-White/product-reviews/B0047DVWLW/ref=cm_cr_pr_btm_link_2?ie=UTF8&pageNumber=";
var number =1;
var part2 = "&showViewpoints=0&sortBy=bySubmissionDateDescending"
link = part1+number+part2
另一種方法是使用string.replace("pageNumber=1","pageNumber=2");
和另一種選擇是使用正則表達式,但即時通訊不好與你會不得不做一些谷歌上搜索。
您可以從httr
包中使用該功能parseQueryString
從shiny
包或parse_url
和build_url
。
require(shiny)
testURL <- "<http://www.amazon.com/Apple-generation-Tablet-processor-White/product-reviews/B0047DVWLW/ref=cm_cr_pr_btm_link_2?ie=UTF8&pageNumber=1&showViewpoints=0&sortBy=bySubmissionDateDescending>"
parseURL <- parseQueryString(testURL)
parseURL$pageNumber <- 4
newURL <- paste(names(parseURL), parseURL, sep = "=", collapse="&")
require(httr)
testURL <- "<http://www.amazon.com/Apple-generation-Tablet-processor-White/product-reviews/B0047DVWLW/ref=cm_cr_pr_btm_link_2?ie=UTF8&pageNumber=1&showViewpoints=0&sortBy=bySubmissionDateDescending>"
parseURL <- parse_url(testURL)
parseURL$query$pageNumber <- 4
newURL <- build_url(parseURL)
運行代碼時,請從URL – jdharrison
試試這個:
# inputs
URL1 <- "...whatever...&pageNumber=1"
i <- 2
URL2 <- sub("pageNumber=1", paste0("pageNumber=", i), URL1)
或使用perl的零寬度正則表達式:
URL2 <- sub("(?<=pageNumber=)1", i, URL1, perl = TRUE)
如果我們知道沒有1日前pageNumber
,比如這裏的情況下,那麼它簡化爲:
URL2 <- sub(1, i, URL1)
中刪除尖括號「<....>」,謝謝您的幫助! – clickpn
另一種非常簡單的方法是使用sprintf
:
sprintf('http://www.amazon.com/Apple-generation-Tablet-processor-White/product-reviews/B0047DVWLW/ref=cm_cr_pr_btm_link_2?ie=UTF8&pageNumber=%s&showViewpoints=0&sortBy=bySubmissionDateDescending',
1:10)
在上面的代碼,作爲第一個參數提供該串中的%s
通過在第二個參數中提供的向量的每個元素替換,反過來。
有關這個非常方便的字符串操作函數的更多細節,請參閱?sprintf
。
我現在知道了,代碼就在這裏。
listurl<-paste("http://rads.stackoverflow.com/amzn/click/B0047DVWLW",1:218)
ipadlisturl<-paste(listurl,"&showViewpoints=0&sortBy=bySubmissionDateDescending")
如果你解決了你自己的問題,你應該輸入解決方案作爲答案,而不是附加到你的問題。如果您覺得這是最好的解決方案,將其標記爲可接受的解決方案沒有任何問題。 – jbaums