我正在努力解决getForm
以及重定向查询的问题。我试图尝试使用cookiefile
和followlocation
,就像Stackoverflow中的其他主题一样,但没有结果。
我的代码:
getForm("http://korpus.pl/poliqarp/poliqarp.php",
query = "pies", corpus = "2", showMatch = "1",showContext = "3",
leftContext = "5", rightContext = "5", wideContext = "50", hitsPerPage = "10",
.opts = curlOptions(
verbose = TRUE,
followlocation=TRUE
)
)
我是否正确,我正在获取重定向页面的内容?如果是这样,我怎么能绕过它呢?
答案 0 :(得分:0)
curl = getCurlHandle(cookiefile = "", verbose = TRUE, followlocation=TRUE)
getForm("http://korpus.pl/poliqarp/poliqarp.php",
query = "pies", corpus = "2", showMatch = "1",showContext = "3",
leftContext = "5", rightContext = "5", wideContext = "50", hitsPerPage = "10",
.opts = curlOptions(
verbose = TRUE,
followlocation=TRUE
)
, curl = curl)
test1 <- getURL("http://korpus.pl/poliqarp/poliqarp.php", curl = curl)
test2 <- getURL("http://korpus.pl/poliqarp/poliqarp.php", curl = curl)
通过一些说服测试2希望应该包含结果
curl是一个会在调用过程中持续存在的句柄。设置cookiefile
告诉RCurl存储cookie。
您可以使用getCurlInfo(curl)
访问curl句柄中的信息。例如
> cat(getCurlInfo(curl)$cookielist)
korpus.pl FALSE / FALSE 0 PHPSESSID ark8hbi13e2c4qrp51aq51nj62
getForm调用设置重要的cookie PHPSESSID
。第一个getURL导致:
> library(XML)
> htmlParse(test1)['//h3'][[1]]
<h3>This page will <a href="poliqarp.php">refresh</a> automatically in a second</h3>
它告诉你它可能会使用javascript自动刷新,所以你需要通过发出另一个电话来手动刷新。