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