2013-08-03 8 views
0

Я прочитал документацию html.parser, но я не могу найти атрибут anchorlist класса HTMLParser. Python 2.x имеет этот атрибут.confused с атрибутом HTMLParser

Я искал для него, но не могу найти ответа. В Python 3.x есть класс HTMLParser?

+0

Где вы видите этот атрибут? У вас есть ссылка на него? –

+0

@BurhanKhalid: см. Http://docs.python.org/2/library/htmllib.html#htmllib.HTMLParser.anchor_bgn –

ответ

1

Атрибут anchorlist был частью htmllib.HTMLParser class. Модуль был устаревшим в Python 2.6 и не присутствует в Python 3.

html.parser модуль в Python 3, с другой стороны, был назван HTMLParser в Python 2. Он не имеют атрибут anchorlist.

Вы можете эмулировать атрибут путем прослушивания начала тегов событий для любого a тега добавить атрибут href (если таковой имеется) в список, чтобы построить тот же список:

from html.parser import HTMLParser 


class MyHTMLParser(HTMLParser): 
    def __init__(self, *args, **kw): 
     super().__init__(*args, **kw) 
     self.archorlist = [] 

    def handle_starttag(self, tag, attrs): 
     if tag == 'a' and 'href' in attrs: 
      self.anchorlist.append(attrs['href']) 

В качестве альтернативы, использовать дружественную API например, BeautifulSoup, чтобы собирать якоря ссылок.

+0

Большое вам спасибо, посмотрим, что я могу сделать, это ваш путь – tixiangshu

+0

Я попробую BeautifulSoup, и спасибо за редактирование вопроса – tixiangshu

Смежные вопросы