jeudi 30 octobre 2014

pymanga! vos manga en local


Yataaaa

Ou sont les amateurs de manga ??
Ou sont les pythonistes ??

Tadaima!

Vous avez l'habitude de regardez les scans de vos mangas favoris ?
Vous les sauvegardez sur votre disque dur pour en faire une collection ?

Eh bien nous avons quelques choses pour vous !

On va faire ensemble un petit script qui va nous permettre de télécharger les scans de naruto, bleach ou One Piece etc.

Trêve de bavardage passons au sérieux !

On va faire un peu de web scraping en utilisant python et quelques librairies comme urllib2, beautifulsoup4 sur lesquels on a un peu écrit!

Avant de passer aux codes étudions d'abord la structure d'une page d'un manga prenons comme exemple http://mangareader.net/bleach/603

Deux parties nous intéressent sur cette page:
  • la liste déroulante, ayant comme id pageMenu, elle contient les adresses des différentes pages composant le chapitre et permet ainsi de naviguer entre eux.
  • l'image qu'on veux télécharger avec comme id img son attribut src correspond a L’URL de l'image

























On récupére le contenu de la page et on le parse en html avec beautifulSoup4. Pour récupérer cette portion de la page on utilise la fonction find avec l'id du select. Ensuite on parcours les 'option' pour récupérer le value de chacune d'elle correspondant à une URL. Toutes ces URLs sont enregistrées dans un array.






















Une fois obtenu on parcours chaque page et on récupère L’URL de l'image qu'on passe à urllib2 pour le télécharger.


















Une fois téléchargé on écrit le flux dans un fichier sauvegardé en local.






















Pour mettre un peu de sel on va ajouter la librairie optparse qui permet de passer les arguments saisis en ligne de commande à notre script. Ainsi on avec l'option -c ou --chapter on passera le numéro du chapitre a télécharger et avec -m ou --manga on passera le nom du manga qu'on veut télécharger

















Le reste du script est disponible sur notre dépôt  github vous pouvez le compléter étant donné qu'il reste des choses a améliorer et ainsi apporter votre contribution! open source quoi  ;) !



Référence:

  1. Le depôt
  2. BeautifulSoup4
  3. urllib2
  4. optparse


Aucun commentaire:

Enregistrer un commentaire

Contact

Nom

E-mail *

Message *