你如何在 R 中构建 url

how do you build the url in R

sitescope 服务器上有报告说我可以使用 RCurl 包来提取数据并解析它以实现一些自动化。

这是 url:

"http://server1.sitescope1.hosting.net:8888/SiteScope/accounts/login59/htdocs/Reports-1725002550/Report-01_05-01_25_2015.txt"

这部分(01_25_2015)简单,报告运行s的日期,我可以这样构建:

 d<-format(Sys.time(),"%m_%d_%Y")

问题在于:

01_05

01 是报告配置为 运行 的小时,但取决于需要多长时间(在本例中,报告从 01 开始并在 05 完成)。然而,05 可能是从 01 到 60 的任何数字,实际上可能是从 01 到 10。

当我构建 url 时:

我可以使用 RCurl 包来拉取 url,假设 url 是有效的:

x<-getURL(url, userpwd="userid:password", connecttimeout=60)

我的问题是:

假设我知道应该 运行 的报告的时间,有没有办法在不进行多次 url 调用的情况下确定 url 的分钟部分?或者在使用 RCurl 调用之前如何构建 url?

正如 Scott 所建议的:

我已经这样做了:

url <- "http://server1.sitescope1.hosting.net:8888/SiteScope/accounts/login59/htdocs/Reports-1725002550/"

filenames <- getURL(url, dirlistonly=TRUE)

这将使我得到一个 html 输出,如下所示:

 "<HTML>\r\n<HEAD>\r\n<meta http-equiv=\"Expires\" content=\"0\"/>\n<meta http-equiv=\"Pragma\" content=\"no-cache\"/>\n\r\n<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html;CHARSET=Cp1252\"/>\r\n\r\n<TITLE>file</TITLE>\r\n<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"/SiteScope/htdocs/artwork/sitescopeUI.css\"/>\r\n</HEAD>\n\r\n<BODY BGCOLOR=\"#ffffff\" LINK=#1155bb ALINK=#1155bb VLINK=#1155bb>\n\r\n<H2></H2><p><p>\r\n<A HREF=/SiteScope/accounts/login59/htdocs/Reports-1725002550/latest.html><B>Most Recent Report</B></A>\r\n<P><CENTER>\n<A NAME=uptimeSummary> </A>\n<TABLE WIDTH=\"100%\" BORDER=1 CELLSPACING=0>\n <CAPTION><B>Report Summary</B></CAPTION>\r\n <TR BGCOLOR=\"#88AA99\"><TH>&nbsp;</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag1</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag10</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag11</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag12</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag13</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag14</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag15</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag16</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag2</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on server1</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag4</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on server2</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag6</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on server3</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag8</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on server9</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on dc2prwtag17</TH><TH COLSPAN=2>WTAD::Linux: Total CPU Percent Utilization on server10</TH></TR>\r\n <TR BGCOLOR=\"#DDDDDD\"><TD><B>Information For</B></TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD><TD ALIGN=RIGHT>avg</TD><TD ALIGN=RIGHT>peak</TD></TR>\r\n <TR BGCOLOR=\"#DDDDDD\"><TD><A HREF=/SiteScope/accounts/login59/htdocs/Reports-1725002550/Report-15_33-01_25_2015.html>3:33 PM 1/18/15 - 3:33 PM 1/25/15</A> (<A HREF=/SiteScope/accounts/login59/htdocs/Reports-1725002550/Report-15_33-01_25_2015.txt>text</A>)</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">3.67%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">28%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">2.85%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">10%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1.65%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">18%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.54%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">14%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.12%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">15%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.42%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">18%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">2%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.72%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">6%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.26%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">30%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">3.42%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">16%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">3.4%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">16%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1.58%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">7%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.46%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">7%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.4%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">2%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1.49%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">11%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">2.25%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">8%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.49%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4%</TD></TR>\r\n <TR BGCOLOR=\"#DDDDDD\"><TD><A HREF=/SiteScope/accounts/login59/htdocs/Reports-1725002550/Report-01_05-01_25_2015.html>1:05 AM 1/18/15 - 1:05 AM 1/25/15</A> (<A HREF=/SiteScope/accounts/login59/htdocs/Reports-1725002550/Report-01_05-01_25_2015.txt>text</A>)</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">3.68%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">28%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">2.75%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">10%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1.6%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">18%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.41%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">14%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.11%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">15%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.39%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">18%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">2%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.72%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">6%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.25%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">30%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">3.43%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">16%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">3.39%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">16%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1.58%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">7%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.46%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">7%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.4%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">2%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1.49%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">11%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">2.17%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">8%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.55%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4%</TD></TR>\r\n <TR BGCOLOR=\"#DDDDDD\"><TD><A HREF=/SiteScope/accounts/login59/htdocs/Reports-1725002550/Report-11_26-01_20_2015.html>11:26 AM 1/13/15 - 11:26 AM 1/20/15</A> (<A HREF=/SiteScope/accounts/login59/htdocs/Reports-1725002550/Report-11_26-01_20_2015.txt>text</A>)</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">3.83%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">27%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">2.74%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">15%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1.51%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">6%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.64%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">20%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.32%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">21%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.84%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">20%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.72%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">7%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4.39%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">27%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">3.49%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">16%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">3.45%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">16%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1.65%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">7%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.51%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">6%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.42%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">6%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1.55%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">7%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">2.11%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">8%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">1%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">0.61%</TD><TD ALIGN=RIGHT BGCOLOR=\"#FFFFFF\">4%</TD></TR>\r\n</TABLE></CENTER>\r\n<P><FORM ACTION=\"/SiteScope/cgi/go.exe/SiteScope\" method=\"POST\">\n<input type=\"hidden\" name=\"page\" value=\"adhocReport\"/>\n<input type=\"hidden\" name=\"queryID\" value=\"1725002550\"/>\n<input type=\"hidden\" name=\"htmlFile\" value=\"yes\"/>\n<input type=\"hidden\" name=\"account\" value=\"login59\"/>\n<input type=\"hidden\" name=\"isFlipperContext\" value=\"false\"/>\n<input type=\"hidden\" name=\"isSwingContext\" value=\"true\"/>\n<input type=\"hidden\" name=\"locale\" value=\"en_US\"/>\n<input type=\"hidden\" name=\"useOldLinks\" value=\"false\"/>\n<input class=\"button\" type=\"submit\" value=\"Generate\" onclick=\"this.disabled=true; this.value= 'Generating. Wait..'; document.forms[0].submit();\" />\n</FORM>\nManagement Report Now - this will immediately generate and save this report, using the most current data\n (<B>Note: </B>This may take a few moments, depending on the speed of the SiteScope machine, the number of monitors and the time period of the report)\n</BODY></HTML>\r\n"

如您所见,有 HREF 部分:HREF=/SiteScope/accounts/login59/htdocs/Reports-1725002550/Report-15_33-01_25_2015.txt>

我需要能够从最新的 HREF 构建 url。

如果你可以做一个目录列表,你可以使用

url <- "http://server1.sitescope1.hosting.net:8888/SiteScope/accounts/login59/htdocs/Reports-1725002550/"

filenames <- getURL(url, dirlistonly=TRUE)

然后解析文件名以获取所需的文件(然后检索这些文件)。像这样,使用您的 "Report-01_05-01_25_2015.txt" 示例(其中 05 不确定)。

flist <-unlist(strsplit(filenames, "\n"))
l <- grep("Report-01_..-01_25_2015.txt", flist,value=TRUE)

然后抓住 l[length(l)],这是你的最后一个。