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

StackOverflow https://stackoverflow.com//questions/23036089

Вопрос

Я борюсь с 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
            )
      )

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top