Как я могу прочитать несколько веб-адресов со знаком «%» в адресе, которые блокируют динамическую итерацию с помощью sprintf? - PullRequest
0 голосов
/ 04 января 2019

Код, который я использовал для удаления веб-сайта с несколькими страницами, использует функцию sprintf, которая выполняет итерацию путем изменения динамической части URL "% d" для страниц.Но недавно веб-сайт, который я очищаю, добавил в адрес некоторые переменные, в которых есть «%».Поэтому я не могу отказаться, потому что он дает функцию отображения ошибок, которую я использую с sprintf для этих недавно добавленных символов%?

url_base <- "https://www.xxxxxx.com/girne?s-r=S&property_type=1&property=&min_price=&max_price=&currency=1&min_m2=&max_m2=&title-type%5B0%5D=1&page=%d&sort=mr"
map_df(1:10,function(i){
emlak <- read_html(sprintf(url_base,i))
fiyat <-emlak%>%html_nodes("#properties .price")%>%html_text()
alan <-emlak%>%html_nodes(".glyphicons-vector-path-square+ .detail-value")%>%html_text()
ilanno <-emlak%>%html_nodes(".fa-hashtag+ .detail-value")%>%html_text()
bolge <-emlak%>%html_nodes("#properties figure")%>%html_text()

data.frame(fiyat,alan,ilanno,bolge,stringsAsFactors = FALSE)

}) -> emlak_table3

Есть ли способ определить динамический итератор, кроме "%"?Я хотел бы использовать ту же процедуру для удаления веб-сайта и загрузки данных страниц

1 Ответ

0 голосов
/ 05 января 2019

Чтобы вставить литерал % в sprintf, используйте %%.Т.е. sprintf('Your rate: %.1f%%', 31.4).

Таким образом, в каждом месте вашей строки, где вам нужен буквальный символ '%', используйте два.В любом месте, где вам нужно вставить значение, используйте его.

...