2010-10-02 8 views
0

J'ai une page htmlParse html belle soupe

<a email="[email protected]" href="http://www.max.ru/agent?message&[email protected]" title="Click herе" class="mf_spIco spr-mrim-9"></a><a class="mf_t11" type="booster" href="http://max.ru/mail/corporate/"> 

Je neeed une chaîne email Parse

soup = BeautifulSoup(data 
    string = soup.find("a",{"email": ""}) 
    print string 

Mais il ne fonctionne pas. Où erreur?

Répondre

4

Votre erreur consistait à utiliser la dict attrs pour rechercher des éléments dont l'attribut de messagerie est vide. Essayez ceci à la place.

#!/usr/bin/env python 

from BeautifulSoup import BeautifulSoup 
import urllib2 

req = urllib2.urlopen('http://worldnuclearwar.ru') 

soup = BeautifulSoup(req) 
print soup.find("a", email=True)["email"] 

Pour imprimer l'attribut email de l'élément premiera qui a un attribut email. Si vous voulez tous les e-mails, essayez

for link in soup.findAll("a", email=True): 
    print link["email"] 
+0

essayer déjà. – Alexander

+0

Fichier "/usr/lib64/python2.6/site-packages/BeautifulSoup.py", ligne 599, dans __getitem__ return self._getAttrMap() [clé] KeyError: 'email' – Alexander

+0

Edité pour afficher le script complet qui fonctionne pour moi – Day