getForm с методом get - как обойти перенаправление?

Я борюсь с getForm и проблема перенаправления моего запроса. Я пытался поэкспериментировать с cookiefile а также followlocation как и в других темах в Stackru, но безрезультатно.

Мой код:

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

Я прав, что я получаю содержимое страницы перенаправления? Если так, как я могу обойти это?

1 ответ

Решение
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 хранить куки. Вы можете получить доступ к информации в ручке 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, поэтому вам нужно выполнить это обновление вручную, выполнив другой вызов.

Другие вопросы по тегам