R - Modifier du html & l'envoyer à un serveur via httr

R - Modifier du html & l'envoyer à un serveur via httr - BI/Big Data - Programmation

Marsh Posté le 03-05-2016 à 18:57:04    

Hello,
 
J'essaie de faire (sous R avec le package httr, parce que je maîtrise suffisamment que PHP et ça) un script qui prend en entrée nom et prénom et regarde si la personne a fait certaines écoles, en allant consulter les annuaires publics de ces écoles. J'ai réussi facilement pour l'X, mais je galère pour sciences po, parce que leur annuaire) utilise du javascript (je crois).
 
1) Pour autant que je sache, pour le champ "nom", il faut que j'accède à cette partie du code html :
 

Code :
  1. <div class="annuaireRecherche-v2" style="">
  2.      <span>Nom</span>
  3.      <div class="select2-container select2-allowclear autocomplete" id="s2id_PersonneNom" style="min-width: 0;">
  4.        <a href="javascript:void(0)" class="select2-choice" tabindex="-1">    
  5.          <span class="select2-chosen" id="select2-chosen-3">Derez</span>
  6.          <abbr class="select2-search-choice-close"></abbr>    
  7.          <span class="select2-arrow" role="presentation">
  8.            <b role="presentation"></b>
  9.          </span>
  10.        </a>
  11.        <label for="s2id_autogen3" class="select2-offscreen"></label>
  12.        <input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button"  
  13.            aria-labelledby="select2-chosen-3" id="s2id_autogen3" tabindex="0">
  14.      </div>
  15.      <input type="hidden" name="PersonneNom" id="PersonneNom" class="autocomplete" style="min-width: 0px;  
  16.            display: none;" data-placeholder="Saisir un nom" data-multiple="" data-libelle=""  
  17.            value="LeNomQueJeVeuxTester" data-limit="" tabindex="-1" title="">
  18. </div>


 
2) et dans le dernier tag <input>, changer l'attribut value par le nom que je veux vérifier.
 
3) Ensuite, je dois "cliquer" (aucune idée de comment) sur

Code :
  1. afficher les résultats

sur la droite. Le code html de ce bouton :
 

Code :
  1. <div class="showResultsButton" style="text-align: center; display: block;">
  2.       <a href="#" class="jqueryButton  ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" onclick="showResultList($('.shortResults')); return false;" role="button">
  3.         <span class="ui-button-icon-primary ui-icon ui-icon-search"></span>
  4.         <span class="ui-button-text">
  5.           Afficher les résultats
  6.         </span>
  7.       </a>
  8.     </div>


 
4) Et enfin, aller au tag <div class="people clearfix"> et récupérer le contenu des tags <a href="...">  
 

Code :
  1. <div class="people clearfix">
  2.      <div class="tab_result" style="clear:both">
  3.       <div class="ppl">
  4.        <div class="ppl-wrap clearfix" style="clear:both">
  5.         <div class="ppl-image">
  6.          <a href="/profil/francois.hollande74" target="_blank">
  7.           <img alt="" src="/ressources/temp/100_120t121_153006959_inconnu.jpeg">
  8.          </a>
  9.         </div>
  10.         <div class="ppl-content">
  11.          <h3>
  12.           <a href="/profil/francois.hollande74" target="_blank">Hollande  François</a>
  13.          </h3>
  14.          <p class="meta">D Service Public Promo 1974</p>
  15.          <p></p>
  16.         </div>
  17.          <div class="ppl-content" style="float:right"></div>
  18.         </div>
  19.        <p class="buttons">
  20.         <a class="button " href="/profil/francois.hollande74" target="_blank">
  21.          Voir le profil
  22.         </a>
  23.        </p>
  24.       </div>
  25.      </div>
  26.     </div>


 
Le problème, c'est que, à l'étape 2, je ne sais pas comment modifier le contenu de l'attribut et envoyer ça au serveur. Mon code jusqu'ici
 

Code :
  1. library(XML)
  2. library(httr)
  3. library(foreach)
  4. url        <- "http://www.sciences-po.asso.fr/gene/main.php?base=1244"   
  5. response   <- GET(url)
  6. doc        <- content(response, type="text/html", encoding = 'ISO-8859-1')
  7. parseddoc  <- htmlParse(doc)
  8.    
  9. # je dois modifier le contenu de ça
  10. xpathApply(parseddoc, "//*[@id='PersonneNom']/@value" )
  11. # et m'assurer que c'est envoyé au serveur, puis récupérer le code renvoyé en retour, etcaetera...


 
Si quelqu'un a une idée de comment faire ça ?
 
Merci d'avance


Message édité par saint malo le 11-05-2016 à 20:26:39
Reply

Marsh Posté le 03-05-2016 à 18:57:04   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed