Bonjour,
Je code en ce moment un script permettant de télécharger en gros des images sur un site.
Je suis avec une machine sous windows, avec l'ide Sublime Text 3 et python 3.2. Je débute encore en python, j'ai commencé récemment donc mon code ne doit pas être très propre.
Donc je bloque au moment d'exploiter le code html, je le récupère avec urllib et récupère le morceau que j'ai envie avec BeautifulSoup.
Le problème est que je ne doit récupérer que l'url de l'image à télécharger (celle la) contenue dans la balise img et l'option src :
Or avec beautifulsoup je récupère la balise img entière.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <img alt="70d2f665cdd568989145aaab16838ae3" data-fav-count="3" data-flags="" data-has-active-children="false" data-has-children="false" data-large-height="600" data-large-width="600" data-original-height="600" data-original-width="600" data-rating="s" data-score="2" data-tags="1girl apron blonde_hair blush braid broom broom_riding fang hat ishimori_sakana kirisame_marisa long_hair open_mouth side_braid sidesaddle star touhou waist_apron witch_hat yellow_eyes" data-uploader="Xelleos" height="600" id="image" src="/data/70d2f665cdd568989145aaab16838ae3.jpg" width="600">
Donc j'ai pensé à deux choses soit beautifulsoup permet de récupérer le contenu de l'option src et je ne l'ai pas vu. Soit je peux modifier le string contenant la balise img et isoler la balise src.
Voilà le code que j'utilise :
Je vous demande donc si vous avez une idée de comment je pourrais faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 from bs4 import BeautifulSoup import urllib.request, urllib.parse, urllib.error #Stocker la page web dans une variable htmldoc = urllib.request.urlopen("https://danbooru.donmai.us/posts/2063643?tags=touhou") soup = BeautifulSoup(htmldoc, "html.parser") #Retrouver le nom de la page web for title in soup.find_all('title'): name = repr(title) #convertir la variable spéciale en string name = name.replace('<title>', '') name = name.replace('</title>', '') #name = name.replace(' ', '_') print(name) #Récuperer url image for urlimg in soup.find_all(id="image"): dlurl = repr(urlimg) #convertir la variable spéciale en string print(dlurl)
Merci
Partager