Question

J'ai du mal avec le getForm et le problème de la redirection de ma requête.J'ai essayé d'expérimenter avec cookiefile et followlocation comme dans d'autres sujets dans Stackoverflow mais sans résultat.

Mon code :

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

Ai-je raison de dire que je reçois le contenu de la page de redirection ?Si oui, comment puis-je le contourner ?

Était-ce utile?

La solution

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)

Avec un peu de persuasion, test2 devrait, espérons-le, contenir les résultats

curl est un handle qui persistera entre les appels.paramètre cookiefile dit à RCurl de stocker les cookies.Vous pouvez accéder aux informations dans la poignée curl en utilisant getCurlInfo(curl).Par exemple

> cat(getCurlInfo(curl)$cookielist)
korpus.pl   FALSE   /   FALSE   0   PHPSESSID   ark8hbi13e2c4qrp51aq51nj62

L'appel getForm définit le cookie important PHPSESSID.Le premier getURL donne :

> library(XML)
> htmlParse(test1)['//h3'][[1]]
<h3>This page will <a href="poliqarp.php">refresh</a> automatically in a second</h3> 

Il vous indique qu'il sera probablement actualisé automatiquement avec javascript, vous devez donc effectuer cette actualisation manuellement en émettant un autre appel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top