Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2022-05-09T20:51:19+02:00Les derniers messages parus sur le forum de Zeste de Savoir.Scrap le alt d'une image d'un site python (Beautiful Soup), message #2427342022-05-09T20:51:19+02:00firm1/@firm1https://zestedesavoir.com/forums/sujet/16251/scrap-le-alt-dune-image-dun-site-python-beautiful-soup/?page=1#p242734<figure><blockquote>
<p>Merci <a href="/@deuchnord" rel="nofollow" class="ping ping-link">@<span class="ping-username">deuchnord</span></a> mais je n’utilise pas de fonction
Ça fait une heure et demi que je suis dessus et je n’ai toujours pas trouvé la solution, ça me parait pourtant simple…</p>
</blockquote><figcaption><a href="https://zestedesavoir.com/forums/sujet/16251/scrap-le-alt-dune-image-dun-site-python-beautiful-soup/?page=1#p242732">rix27</a></figcaption></figure>
<p>Bonjour,</p>
<p>Ce que veut dire Deuchnord ici c’est d’ajouter le pararametre <code>limit=1</code> la ou tu as écrit <code>span.find_all("img")</code>.</p>
<p>Mais je vois des cas ou ça serait problématique car dans ton code, tu essayes de lister toutes les span, puis dans chaque span tu cherche des images, ce n’est pas très optimal.</p>
<p>Tu peux directement passer par le css pour rechercher la première image de ta div de cette manière.</p>
<div class="hljs-code-div hljs-code-python"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span></div><pre><code class="hljs language-python">img = soup.find_all(<span class="hljs-string">".seven-day-fc2 img"</span>) <span class="hljs-comment"># ici on utilise le selecteur en css pour cibler la classe et on lui dit de chercher une image dans un bloc qui a pour class "seven-day-fc2"</span>
<span class="hljs-built_in">print</span>(img[<span class="hljs-string">"alt"</span>]) <span class="hljs-comment"># on affiche le contenu du alt</span>
</code></pre></div>
<p>NB: je n’ai pas testé ce qui est ecrit, des erreurs de syntaxes peuvent exister.</p>
<p>Edit: grillé en partie par artragis</p>Scrap le alt d'une image d'un site python (Beautiful Soup), message #2427332022-05-09T20:38:36+02:00artragis/@artragishttps://zestedesavoir.com/forums/sujet/16251/scrap-le-alt-dune-image-dun-site-python-beautiful-soup/?page=1#p242733<p>Tu n’as peut être pas encapsulé ton code dans une fonction qui te serait personnel, tu <em>appelles</em> la fonction <code>find_all</code> lorsque tu fais <code>span.find_all("img")</code>. Ce que le message de Deuchnord veut dire c’est qu’il t’est possible d’ajouter un autre paramètre en plus de <code>"img"</code> qui limite le nombre d’éléments retournés.</p>
<p>Cela donnerait <code>span.find_all("img", limit=1)</code>.</p>
<p>Je comprends que quand on est débutant tout ce vocabulaire peut vite prêter à confusion, c’est en partie pour ça que <a href="/@entwanne" rel="nofollow" class="ping ping-link">@<span class="ping-username">entwanne</span></a> a créé le tutoriel <a href="https://zestedesavoir.com/tutoriels/2514/un-zeste-de-python/5-fonctions/1-fonctions-factoriser/">un zeste de python</a> où tu retrouveras un peu tout ça pour t’aider avec quelques explications supplémentaires ainsi que des exercices si le coeur t’en dit.</p>Scrap le alt d'une image d'un site python (Beautiful Soup), message #2427322022-05-09T20:16:41+02:00rix27/@rix27https://zestedesavoir.com/forums/sujet/16251/scrap-le-alt-dune-image-dun-site-python-beautiful-soup/?page=1#p242732<p>Merci <a href="/@deuchnord" rel="nofollow" class="ping ping-link">@<span class="ping-username">deuchnord</span></a> mais je n’utilise pas de fonction
Ça fait une heure et demi que je suis dessus et je n’ai toujours pas trouvé la solution, ça me parait pourtant simple…</p>Scrap le alt d'une image d'un site python (Beautiful Soup), message #2427312022-05-09T19:58:57+02:00Deuchnord/@Deuchnordhttps://zestedesavoir.com/forums/sujet/16251/scrap-le-alt-dune-image-dun-site-python-beautiful-soup/?page=1#p242731<p>Salut,</p>
<p>Je pense c’est la librairie Beautiful Soup que tu utilises, tu as deux possibilités selon <a href="https://beautiful-soup-4.readthedocs.io/en/latest/#find">la doc</a> :</p>
<ul>
<li>tu peux ajouter l’argument <code>limit=1</code> à l’appel de la fonction <code>find_all()</code>, ce qui aura pour effet d’arrêter la recherche dès le premier résultat ;</li>
<li>ou bien tu peux utiliser la fonction <code>find()</code> à la place, qui est « presque équivalente » à la première solution, la différence étant qu’ici, elle ne retournera pas une liste mais juste le premier résultat.</li>
</ul>Scrap le alt d'une image d'un site python (Beautiful Soup), message #2427302022-05-09T19:49:42+02:00rix27/@rix27https://zestedesavoir.com/forums/sujet/16251/scrap-le-alt-dune-image-dun-site-python-beautiful-soup/?page=1#p242730<p>Bonsoir à tous, j’aimerais récupérer le alt d’une image d’un site. J’ai donc codé ceci : </p>
<div class="hljs-code-div hljs-code-py"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span></div><pre><code class="hljs language-py"><span class="hljs-keyword">for</span> span <span class="hljs-keyword">in</span> soup.find_all(class_=<span class="hljs-string">"seven-day-fc2"</span>):
<span class="hljs-keyword">for</span> img <span class="hljs-keyword">in</span> span.find_all(<span class="hljs-string">"img"</span>):
<span class="hljs-built_in">print</span>(img[<span class="hljs-string">"alt"</span>])
</code></pre></div>
<p>Ceci me renvoie le alt de toutes les images de la div, j’aimerais qu’elle me renvoie seulement le alt de la première image de la div. </p>
<p>Cordialement, merci.</p>