разобрать html красивый суп

У меня есть html-страница

<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/">

Мне нужна строка синтаксического анализа электронной почты

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

Но это не работает. Где ошибка?


person Alexander    schedule 02.10.2010    source источник


Ответы (1)


Ваша ошибка заключалась в использовании словаря attrs для поиска элементов с пустым атрибутом электронной почты. Попробуйте это вместо этого.

#!/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"]

Чтобы напечатать атрибут email первого элемента a, который имеет атрибут email. Если вам нужны все электронные письма, попробуйте

for link in soup.findAll("a", email=True):
    print link["email"]
person Day    schedule 02.10.2010
comment
Файл /usr/lib64/python2.6/site-packages/BeautifulSoup.py, строка 599, в getitem return self._getAttrMap()[key] KeyError: 'email' - person Alexander; 02.10.2010
comment
@user413036 user413036 Обновлено снова с учетом ваших реальных тестовых данных. - person Day; 03.10.2010
comment
@user413036 user413036 Рад это слышать, пожалуйста, примите мой ответ, если он работает для вас (установите флажок рядом с моим ответом) - person Day; 03.10.2010