Récupérer une base de données
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Récupérer une base de données



  1. #1
    MaliciaR

    Cool Récupérer une base de données


    ------

    Hello, tout le monde

    J'ai un gros souci : il me faut les fiches contenues dans une DB, mais pour l'instant tout ce que je fais pour automatiser le processus rate
    Donc, elle est interrogeable via une interface web (http://www-is.biotoul.fr/) et je sais que le code d'une page est un mélange entre html et javascript :


    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
    <html>
    <head>
    <title>IS Finder</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="keywords" content="Insertion Sequence
    IS Finder
    IS Database">
    <link rel="icon" href="favicon.ico" type="image/x-icon">
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    <script language="JavaScript">
    var fr3 = "page-is.html"
    var str = location.search;
    var pos = str.indexOf("?is_special_name=");
    if (pos != -1) {
    	var str3 = str.substring(pos + 17, str.length);
    	var fr3 = "/is/scripts/is_spec.php?name=" + str3;
    }
    </script>
    </head>
    <script language="JavaScript">
    document.write(	
    '<frameset rows="*" cols="152,*" frameborder="NO" border="0" framespacing="0">',
      '<frame src="f-gauch-is.html" name="leftFrame" scrolling="NO" noresize>',
      '<frameset rows="137,*" frameborder="NO" border="0" framespacing="0">', 
        '<frame  src="f-haut-is.html" name="topFrame" scrolling="NO" noresize>',
        '<frame  src="', fr3, '" name="mainFrame">',
      '</frameset>',
    '</frameset>'
    );
    </script>
    <noframes> 
    <body bgcolor="FCECD2" text="#000000">
    </body>
    </noframes> 
    </html>
    Donc, bon, je n'arrive à avoir aucune info de celles dont j'ai besoin...
    J'ai essayé des bots genre wget, impossible... Le souci est que j'ai besoin des séquences qui y sont, les gens qui en sont responsables filent des infos au compte-goutte mais mon stage finit dans 1 mois et demi et la seule solution que j'aie c'est faire du copier-coller de chaque bout de fiche contenue dans cette DB Chose absurde...

    Quelqu'un aurait-il une idée...?

    Merci beaucoup d'avance

    -----
    An expert is one who knows more and more about less and less.

  2. #2
    invite770d9cfe

    Re : Récupérer une base de données

    Est-ce que cette base est confidentielle ? Si elle ne l'est pas, tu peux me l'envoyer. Autre question : elle est écrite en quoi ?

  3. #3
    Towl

    Re : Récupérer une base de données

    As tu un exemple de requete que tu souahite envoyer pour récupérer un bout (genre mettre XXX dans le champs YYY etc) ?

    Et sinon, d'un point de vu purement légal, as tu pris soin de contacter les administrateurs, car je doute qu'ils ne t'autorise à dumper sauvagement leur BDD, surtout que cela peut s'aparanter à du dénis de service si tu fais trop de requetes rapidement
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  4. #4
    SuperTux

    Re : Récupérer une base de données

    Citation Envoyé par Towl
    Et sinon, d'un point de vu purement légal, as tu pris soin de contacter les administrateurs, car je doute qu'ils ne t'autorise à dumper sauvagement leur BDD, surtout que cela peut s'aparanter à du dénis de service si tu fais trop de requetes rapidement
    Le resultat de la recherche renvoit un 403 avec wget si on ne fake pas le user agent............

  5. A voir en vidéo sur Futura
  6. #5
    MaliciaR

    Re : Récupérer une base de données

    Citation Envoyé par Towl Voir le message
    Et sinon, d'un point de vu purement légal, as tu pris soin de contacter les administrateurs, car je doute qu'ils ne t'autorise à dumper sauvagement leur BDD, surtout que cela peut s'aparanter à du dénis de service si tu fais trop de requetes rapidement
    Disons que ce sont censés être des collaborateurs qui s'étaient engagés à fournir les fichiers, mais depuis 2 mois... Ils n'ont apparemment rien à fiche que la seule solution qui me reste est le copier-coller et que des requêtes vers leur base sont une étape clé de ce que je fais...

    Donc, bon, puisque je n'ai pas que ça à faire, je pensais à faire (difficilement, mais avec de l'aide ça devrait aller ) un parseur html et récupérer juste ce dont j'ai besoin. Ainsi, ils gardent leurs infos et moi je ne passe pas 5 jours à faire du copier-coller parfaitement stérile, inintéressant et amenant à la crise de nerfs. Si je fais toutes les requêtes via l'interface web (très difficilement exploitable), je vais tout saturer vu le nombre de séquences que j'ai à indexer...

    @SuperTux : oui, c'est le premier truc que j'ai essayé Vu le 403, j'ai fait différemment, sans utiliser wget.


    Cela dit, j'ai réussi à avoir un fichier .csv avec les noms Il me reste à récupérer le 3e frame de chaque page... Mais cette étape nécesitera que je prenne des actions chez UPSA, alors je vais au dodo.
    An expert is one who knows more and more about less and less.

  7. #6
    SuperTux

    Re : Récupérer une base de données

    Je ne suis pas très calé en bash mais si cela peut rendre service voici une petite bidouille qui devrait à peut près marchoter, cela donne au moins une idée de la procédure :
    Code:
    wget --post-data='output=files&tout=human&namecond=contains&name=&familycond=contains&family=&origincond=contains&origin=&commentscond=contains&comments=&referencescond=contains&references=&Submit=Submit' --user-agent='Mozilla/5.0' http://www-is.biotoul.fr/is/scripts/is_mini.php
    
    cat is_mini.php | grep "is_spec.php?name=" | sed -e "s/<tr><td>[0-9]*<\/td><td><A href='/http:\/\/www-is.biotoul.fr\/is\/scripts\//g" | sed -e "s/'>[0-9A-Za-z]*<\/a><\/td>//g" > urls.txt
    
    rm is_mini.php
    wget -i urls.txt --user-agent='Mozilla/5.0'
    rm urls.txt
    
    for file in ./* ; do
    grep "<table border='0' width='600'><tr><th bgcolor='c2b09a'><b>IS_SEQ: </b></th></tr><tr><td><tt>" $file | sed -e "s/<table border='0' width='600'><tr><th bgcolor='c2b09a'><b>IS_SEQ: <\/b><\/th><\/tr><tr><td><tt>//g" | sed -e "s/<\/tt><br><\/td><\/tr><\/table>[a-zA-Z0-9?,.;/:!*%=)_-(<>#&'\"]*//g" | sed -e "s/<br>//g" > $file.adn
    done
    Inutile de parser le html, les pages sur le serveur étant générées par un script php, elles sont toujours presque identique, il suffit de repérer le "motif" avant et après la séquence adn.

  8. #7
    invite770d9cfe

    Re : Récupérer une base de données

    Les données dont tu as besoin sont dans une seule table au format CSV ?
    Si c'est le cas, il est très facile de récupérer le contenu des champs qui la constituent et d'en extraire uniquement ce qui t'intéresse. Il suffit de connaître le type de séparateur, le nombre de champs par enregistrement et le rang des champs à extraire.

  9. #8
    MaliciaR

    Re : Récupérer une base de données

    Citation Envoyé par TiClic Voir le message
    Les données dont tu as besoin sont dans une seule table au format CSV ?
    Si c'est le cas, il est très facile de récupérer le contenu des champs qui la constituent et d'en extraire uniquement ce qui t'intéresse. Il suffit de connaître le type de séparateur, le nombre de champs par enregistrement et le rang des champs à extraire.
    Non, malheureusement...

    Mais j'ai réussi à tout récupérer ce we, sans faire de parseur html, mais en m'inspirant du bash de SuperTux Donc, j'ai les presque 3 000 séquences dans un fichier avec les titres au format que je veux. Bash powa

    Merci à tous pour les conseils et suggestions

    Bonne journée.
    An expert is one who knows more and more about less and less.

Discussions similaires

  1. akota medion recuperer donnees
    Par le gazou dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 16/12/2008, 09h21
  2. connection à une base de données avec Acrobat
    Par inviteb8491437 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 09/01/2008, 21h25
  3. Logiciel à utiliser pour créer une base de données documentaire
    Par invite9cdc2a2b dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 05/05/2007, 16h29
  4. ORACLE XE - Créer une base de données
    Par invite843f61d9 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 07/08/2006, 03h17
Découvrez nos comparatifs produits sur l'informatique et les technologies.