J'ai cherché haut et bas pour une explication décente du fonctionnement de BeautifulSoup ou de LXML. Certes, leur documentation est géniale, mais pour quelqu'un comme moi, python/programmeur novice, il est difficile de déchiffrer ce que je cherche.Python, BeautifulSoup ou LXML - Analyse d'URL d'image à partir de HTML en utilisant des balises CSS
De toute façon, en tant que mon premier projet, j'utilise Python pour analyser un flux RSS pour les liens de publication - je l'ai fait avec Feedparser. Mon plan est de gratter ensuite les images de chaque message. Pour la vie de moi cependant, je n'arrive pas à comprendre comment obtenir BeautifulSoup ou LXML pour faire ce que je veux! J'ai passé des heures à lire la documentation et à googler en vain, alors je suis là. Ce qui suit est une ligne de la grande image (mon scrapee).
<div class="bpBoth"><a name="photo2"></a><img src="http://inapcache.boston.com/universal/site_graphics/blogs/bigpicture/shanghaifire_11_22/s02_25947507.jpg" class="bpImage" style="height:1393px;width:990px" /><br/><div onclick="this.style.display='none'" class="noimghide" style="margin-top:-1393px;height:1393px;width:990px"></div><div class="bpCaption"><div class="photoNum"><a href="#photo2">2</a></div>In this photo released by China's Xinhua news agency, spectators watch an apartment building on fire in the downtown area of Shanghai on Monday Nov. 15, 2010. (AP Photo/Xinhua) <a href="#photo2">#</a><div class="cf"></div></div></div>
Ainsi, selon ma compréhension de la documentation, je devrais pouvoir passer les éléments suivants:
soup.find("a", { "class" : "bpImage" })
Pour trouver tous les cas avec cette classe css. Eh bien, ça ne retourne rien. Je suis sûr que je néglige quelque chose de trivial alors j'apprécie énormément votre patience.
Merci beaucoup pour vos réponses!
Pour les futurs Googlers, je vais inclure mon code feedparser:
#! /usr/bin/python
# RSS Feed Parser for the Big Picture Blog
# Import applicable libraries
import feedparser
#Import Feed for Parsing
d = feedparser.parse("http://feeds.boston.com/boston/bigpicture/index")
# Print feed name
print d['feed']['title']
# Determine number of posts and set range maximum
posts = len(d['entries'])
# Collect Post URLs
pointer = 0
while pointer < posts:
e = d.entries[pointer]
print e.link
pointer = pointer + 1
C'est parfait. Merci beaucoup. – tylerdavis