Я хотел бы очистить некоторые данные со страницы, где мне нужно нажать на кнопку (javascript), которая даст мне доступ к таблице.R get html данные из действия javascript
, когда у вас есть http://www.si-vitifrance.com/docs/cvi/cvi13/cartes_inter/c_vin01_coop_com07/, у вас есть доступ к карте и таблице данных с небольшой кнопкой «таблица» слева.
Это открывает новое окно с результатами, и я хотел бы получить этот результат в R. URL этой новой страницы http://www.si-vitifrance.com/docs/cvi/cvi13/cartes_inter/c_vin01_coop_com07/embfiles/table.html?th0, но я не могу иметь доступ к этой странице, если я не прихожу с карты стр.
Так что я хотел бы знать, можно ли имитировать с R то, что производит тот же эффект, что и щелчок по этой кнопке, чтобы получить доступ к этим данным.
Я попытался
path<-"http://www.si-vitifrance.com/docs/cvi/cvi13/cartes_inter/c_vin01_coop_com07/embfiles/table.html?th0"
webpage <- getURL(path)
webpage <- readLines(tc <- textConnection(webpage)); close(tc)
но результат явно не работает
[1] "<!DOCTYPE HTML>"
[2] "<html>"
[3] "<meta http-equiv=\"Content-type\" content=\"text/html; charset=UTF-8\" />"
[4] "<link rel=\"stylesheet\" href=\"style.css\" />"
[5] "<link rel=\"stylesheet\" href=\"rectable.css\" />"
[6] "<script language=\"JavaScript\" type=\"text/javascript\">"
[7] "<!--"
[8] "function sortTable(theColumn,datatype,orderby) {"
[9] " document.getElementById(\"content\").innerHTML = \"Veuillez patientez ...\";"
[10] " var themaId = window.location.search.substr(1,window.location.search.length);"
[11] " var xslFile = \"styletable.xsl\";"
[12] " window.opener.mv_loadAttrTableFile(themaId,true);"
[13] " try {"
[14] "\ttry {"
[15] " var xslt = new ActiveXObject(\"Msxml2.XSLTemplate.4.0\");"
[16] " var xslDoc = new ActiveXObject(\"Msxml2.FreeThreadedDOMDocument.4.0\");"
[17] " } catch(e) {"
[18] " var xslt = new ActiveXObject(\"Msxml2.XSLTemplate\");"
[19] " var xslDoc = new ActiveXObject(\"Msxml2.FreeThreadedDOMDocument\");"
[20] " }"
[21] " xslDoc.async = false;"
[22] " xslDoc.resolveExternals = false;"
[23] " xslDoc.load(xslFile);"
[24] " xslt.stylesheet = xslDoc;"
[25] " var xslProc = xslt.createProcessor();"
[26] " xslProc.input = window.opener.mv_XMLFileArray[themaId].XMLFile;"
[27] " if (theColumn) {"
[28] " xslProc.addParameter(\"field\",\"f\" + (parseInt(theColumn) - 1));"
[29] " xslProc.addParameter(\"datatype\",datatype);"
[30] " xslProc.addParameter(\"orderby\",orderby);"
[31] " }"
[32] " xslProc.transform();"
[33] " content.innerHTML = xslProc.output;"
[34] " } "
[35] ""
[36] " catch(e) {"
[37] " var xsltProcessor = new XSLTProcessor(); "
[38] " var xslStylesheet = window.opener.mv_loadXMLDoc(window.opener.mv_Doc.BaseURL + \"embfiles/\" + xslFile,\"xml\");"
[39] " try {"
[40] " xsltProcessor.importStylesheet(xslStylesheet);"
[41] " }"
[42] " catch(err) {"
[43] " var xslStylesheet = document.implementation.createDocument(\"\", \"\", null);"
[44] " xslStylesheet.async = false;"
[45] " xslStylesheet.load(xslFile);"
[46] " xsltProcessor.importStylesheet(xslStylesheet);"
[47] " }"
[48] " if (theColumn) {"
[49] " xsltProcessor.setParameter(null,\"field\",\"f\" + (parseInt(theColumn) - 1));"
[50] " xsltProcessor.setParameter(null,\"datatype\",datatype);"
[51] " xsltProcessor.setParameter(null,\"orderby\",orderby);"
[52] " }"
[53] " var resultFragment = xsltProcessor.transformToFragment(window.opener.mv_XMLFileArray[themaId].XMLFile,document);"
[54] " document.getElementById(\"content\").innerHTML = \"\";"
[55] " document.getElementById(\"content\").appendChild(resultFragment);"
[56] " }"
[57] "}"
[58] "//-->"
[59] "</script>"
[60] "<title>Table attributaire</title>"
[61] "</head>"
[62] "<body onload=\"sortTable();\">"
[63] "<div id=\"content\">Veuillez patientez ...</div>"
[64] "</body>"
[65] "</html>"
[66] ""
какие-либо идеи?
спасибо
бак вы !! связанная проблема есть что-то для получения хорошо сформированного фрейма данных? как xtable? – delaye
@ delaye вы просите волшебную функцию превратить xml в красивую рамку данных? –
конечно :-) R красивый! в любом случае спасибо @ B.Mr.W – delaye