Partage
  • Partager sur Facebook
  • Partager sur Twitter

Installer urllib2 encore possible ?

    10 septembre 2014 à 17:35:32

    Bonjour !

    Je suis sous Ubuntu 14.04 et j'aimerais utiliser la bibliothèque allocine-wrapper-0.3.0

    Jusque là aucun soucis. J'ai téléchargé l'archive et lancé l'installation en ligne de commande.

    Sauf que j'essaie de l'utiliser, lorsque j'importe "allocine.Allocine" ... il ne trouve pas le module urllib2 ! Normal, puisque sur la version 3.4 il n'y a que urllib3. Je décide donc de demander à mon ami Google mais je ne trouve aucun site proposant de télécharger l'archive de urllib2 :(

    Sauriez-vous où je pourrais dégoter ce genre de fichier ? Faut-il que je programme en 2.x ?

    -
    Edité par Barbatack 10 septembre 2014 à 17:42:36

    • Partager sur Facebook
    • Partager sur Twitter
      10 septembre 2014 à 17:48:45

      Barbatack a écrit:

      Faut-il que je programme en 2.x ?

      Oui, la compatibilité de la bibliothèque n’est indiqué nul part mais il est clair en regardant le code qu’il a été écrit en Python2.

      • Partager sur Facebook
      • Partager sur Twitter
      per aspera ad astra – comp.lang.c FAQexplication pointeur
        10 septembre 2014 à 17:58:45

        Bien ! Merci ! ;)

        L'idée est de créer un petit programme qui récupère ma liste de films afin d'enregistrer certaines caractéristiques (titre, genre, réalisateur, synopsis, ...) dans une base de donnée.

        Du coup, je vais utiliser les bibliothèques Allocine et sqlite3. J'ai donc deux questions :

        * Est-ce que sqlite3 est compatible avec python 2.7 ?

        * Pourrais-je par la suite utiliser QT pour l'interface graphique ? J'avais envie de découvrir ce module que je préfère à tkinter.

        -
        Edité par Barbatack 10 septembre 2014 à 17:59:29

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          10 septembre 2014 à 18:06:55

          Barbatack a écrit:

          * Est-ce que sqlite3 est compatible avec python 2.7 ?

          * Pourrais-je par la suite utiliser QT pour l'interface graphique ? J'avais envie de découvrir ce module que je préfère à tkinter.

          sqlite3 ... va voir du côté de oursql qui gère sql / sqlite ici : http://www.lfd.uci.edu/~gohlke/pythonlibs/#oursql

          et pour qt : tu maitrises (ou connais car tu as déjà manipulé le C++) cette bibli ? ok tu la prends ! / tu la maitrises pas (ou connais pas, ou encore tu veux découvrir ? elle est très lourde !) ? alors va voir . . . Qt ! en lite version, tu prends que ce que tu as besoin, j'ai voulu faire du c++, mais la bibli etait trop grosse (plus de 16Go !)

          Pourquoi je te propose des bibli de python 3 ? parce que y a une bonne doc déjà, ensuite parce que tu n'es pas obligé de passer par allocine et urlib2, voir un code en C# que j'ai fait pour avoir le programme télé depuis un flux rss :

          using System;
          using System.Collections.Generic;
          using System.Linq;
          using System.Text;
          
          ///à rajouter ce qui est en dessous !
          using System.Net;
          using System.IO;
          using System.Text.RegularExpressions;
          
          namespace Programe_Tele_Z
          {
              class Program
              {
                  static void Main(string[] args)
                  {
                      Console.SetWindowSize(130, 42);
                      Console.SetBufferSize(130, 3000);
                      using (WebClient client = new WebClient()) // classe WebClient hérite IDisposable
                      {
                          string codeHtml = client.DownloadString("http://www.telez.fr/programmeTv/flux-rss");
                          codeHtml = codeHtml.Replace("<title>", "");
                          codeHtml = codeHtml.Replace("</title>", "");
                          codeHtml = codeHtml.Replace("<link>", "");
                          codeHtml = codeHtml.Replace("</link>", "");
                          codeHtml = codeHtml.Replace("<item>", "");
                          codeHtml = codeHtml.Replace("</item>", "");
                          codeHtml = codeHtml.Replace("<pubDate>", "Date: ");
                          codeHtml = codeHtml.Replace("</pubDate>", "");
                          codeHtml = codeHtml.Replace("<![CDATA[", "Chaine: ");
                          codeHtml = codeHtml.Replace("]]>", "");
                          codeHtml = codeHtml.Replace("<guid >", "");
                          codeHtml = codeHtml.Replace("<guid>", "");
                          codeHtml = codeHtml.Replace("</guid >", "");
                          codeHtml = codeHtml.Replace("</guid>", "");
                          codeHtml = codeHtml.Replace("<language>", "Langage: ");
                          codeHtml = codeHtml.Replace("</language>", "");
                          codeHtml = codeHtml.Replace("<div>", "");
                          codeHtml = codeHtml.Replace("</div>", "");
                          codeHtml = codeHtml.Replace("<div class = \"enclosures\">", "");
                          codeHtml = codeHtml.Replace("<div class=\"enclosures\">", "");
                          codeHtml = codeHtml.Replace("<description>", "Description: ");
                          codeHtml = codeHtml.Replace("</description>", "");
                          codeHtml = codeHtml.Replace("<br/>", "");
                          codeHtml = codeHtml.Replace("<channel>", "");
                          codeHtml = codeHtml.Replace("</channel>", "");
                          codeHtml = codeHtml.Replace("<rss>", "");
                          codeHtml = codeHtml.Replace("</rss>", "");
                          codeHtml = codeHtml.Replace("<!-- fin generee par le response -->", "");
                          codeHtml = codeHtml.Replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "");
                          codeHtml = codeHtml.Replace("<rss version=\"2.0\"", "");
                          codeHtml = codeHtml.Replace("xmlns:err=\"http://jelix.org/ns/xmlerror/1.0\">", "");
                          codeHtml = codeHtml.Replace("<generator>Jelix php framework http://jelix.org</generator>", "");
                          codeHtml = codeHtml.Replace("Mon,", "Lundi");
                          codeHtml = codeHtml.Replace("Tue,", "Mardi");
                          codeHtml = codeHtml.Replace("Wed,", "Mercredi");
                          codeHtml = codeHtml.Replace("Thu,", "Jeudi");
                          codeHtml = codeHtml.Replace("Fri,", "Vendredi");
                          codeHtml = codeHtml.Replace("Sat,", "Samedi");
                          codeHtml = codeHtml.Replace("Sun,", "Dimanche");
                          codeHtml = codeHtml.Replace("+0200", "");
                          codeHtml = codeHtml.Replace("Lien internet: http://www.telez.fr/index.php", "");
                          codeHtml = codeHtml.Replace("Jan", "Janvier");
                          codeHtml = codeHtml.Replace("Feb", "Fevrier");
                          codeHtml = codeHtml.Replace("Mar", "Mars");
                          codeHtml = codeHtml.Replace("Apr", "Avril");
                          codeHtml = codeHtml.Replace("May", "Mai");
                          codeHtml = codeHtml.Replace("Jun", "Juin");
                          codeHtml = codeHtml.Replace("Jul", "Juillet");
                          codeHtml = codeHtml.Replace("Aug", "Août");
                          codeHtml = codeHtml.Replace("Sep", "Septembre");
                          codeHtml = codeHtml.Replace("Oct", "Octobre");
                          codeHtml = codeHtml.Replace("Nov", "Novembre");
                          codeHtml = codeHtml.Replace("Dec", "Décembre");
                          codeHtml = Regex.Replace(codeHtml, @"(http://www\.telez\.fr.+/[0-9]+)", @"");
          
                          Console.WriteLine(codeHtml);
                          System.IO.StreamWriter ecrire_rss = new System.IO.StreamWriter("codeHtmlTélé.txt", false);
                          ecrire_rss.WriteLine(codeHtml);
                          ecrire_rss.Close();
                          Console.ReadKey(true);
                      }
                  }
              }
          }
          

          Le code est lourd okey. Mais dans cette vaine il fonctionne rapidement.

          -
          Edité par Anonyme 10 septembre 2014 à 18:11:46

          • Partager sur Facebook
          • Partager sur Twitter
            10 septembre 2014 à 18:20:07

            Je maîtrise déjà sqlite3 mais j'irai voir du côté de oursql ;)

            Concernant QT, je me doutais que c'était un peu plus lourd que les autres mais pas à ce point ! :o J'avais commencé à m'intéresser au C++ mais Python me suffit amplement et bien plus facile à maîtriser. Je regarderai pour la lite version, merci du conseil ! :)

            EDIT : Ton code me rappelle l'époque où j'ai voulu créer le même programme mais en passant par urllib3 justement. Je récupérais le code source de la page Allociné du film et je prenais les infos qui m'intéressaient. MAIS... c'est excessivement long, le code sur Allociné c'est le grand fouillis. Dans ton cas, ne pourrais-tu pas plus simplement te servir des regex ? De mémoire on s'en sert aussi en C++

            C'est ce que je voulais faire, bien que les regex me rebutent au plus haut point. Mais j'ai découvert l'API Allociné et un module python qui facilite grandement son utilisation ;)

            -
            Edité par Barbatack 10 septembre 2014 à 18:27:36

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              10 septembre 2014 à 22:04:43

              Pour parser du HTML simplement et rapidement, je conseille le module lxml

              • Partager sur Facebook
              • Partager sur Twitter
                12 septembre 2014 à 14:19:44

                Pourquoi utiliser une bibliothèque externe pour gérer une base de données sqlite3 alors que Python propose un module qui sert précisément à ça dans sa bibliothèque standard depuis des années ?

                Sinon, oui, il existe également des wrappers pour Qt compatibles avec Python 2, notamment PySide.

                PS : Pour parser du xml (puisque c'est exactement ce que produit l'API Allocine), les modules xml standard de Python sont également largement suffisants.

                En fait, hormis pour l'interface graphique, je ne vois pas de raison particulière d'aller chercher plus loin que la bibliothèque standard pour ce projet.

                -
                Edité par nohar 12 septembre 2014 à 14:24:31

                • Partager sur Facebook
                • Partager sur Twitter
                Zeste de Savoir, le site qui en a dans le citron !

                Installer urllib2 encore possible ?

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown