1

我正在努力getForm解决重定向查询的问题。我尝试在 Stackoverflow 中尝试cookiefilefollowlocation在其他主题中一样,但没有结果。

我的代码:

  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
            )
      )

我得到重定向页面的内容是对的吗?如果是这样,我该如何绕过它?

4

1 回答 1

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)

有一点说服力 test2 希望应该包含结果

curl 是一个将在调用中持续存在的句柄。设置cookiefile告诉 RCurl 存储 cookie。您可以使用 访问 curl 句柄中的信息getCurlInfo(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 自动刷新,因此您需要通过发出另一个调用手动执行此刷新。

于 2014-04-13T02:34:37.060 回答