Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 20, 2013 05:30:24

mark24
От:
Зарегистрирован: 2011-10-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу добавить условие в классе.

Всем Hi! Такая проблема, что я не могу добавить условие. Вот такой есть класс.

class UrlFinder(HTMLParser):
    ''' Класс-наследник HTMLParser. '''
    def __init__(self):
        HTMLParser.__init__(self)
        
        self.links = []
        self.pagen = []
        self.mail = []
    def handle_starttag(self, tag, attrs):
		
        attrs = dict(attrs)
        # если находим тег 'a'
        if 'a' == tag:
            try:
                if 'mailto' in attrs['href']:
		     self.mail.append(attrs['href'])
				
		if 'page' in attrs['href']:
		      self.page.append(attrs['href'])
				
		# записываем значение аттрибута href в список-свойство links нашего класса
                self.links.append(attrs['href'])
                
                if 'profile' in attrs['href']:
		      self.profile.append(attrs['href'])				
            except:
                pass     

Так вот выдает такую ошибку.
  File "testmailtoteg.py", line 29
    if 'page' in attrs['href']:
                              ^
IndentationError: unindent does not match any outer indentation level

А если убрать код:
               
 if 'page' in attrs['href']:
        self.mail.append(attrs['href'])
То все в порядке. Почему? Я вот вообще не соображу. Разве есть какое-то ограничение на кол-во условий? Я уже и пробовал elif использовать. Вообщем я в тупике. Прошу помощи.



Офлайн

#2 Сен. 20, 2013 06:32:22

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

Не могу добавить условие в классе.

вроде проблема с отступами. Проверь

Офлайн

#3 Сен. 20, 2013 07:06:35

mark24
От:
Зарегистрирован: 2011-10-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу добавить условие в классе.

ilnur
вроде проблема с отступами. Проверь
Да я вот вообще не пойму. Для примера решил так сделать
 def handle_starttag(self, tag, attrs):
        attrs = dict(attrs)
        # если находим тег 'a'
        if 'a' == tag:
            try:
                self.links.append(attrs['href'])               
               
                if 'mail' in attrs['href']:
					self.mail.append(attrs['href'])								
									    
                if 'profile' in attrs['href']:
					self.profile.append(attrs['href'])		
					
		print 'test'						
					
            except:
                pass  
И все равно ошибка!!! Какого хрена! Должно же работать, но не работает.
  File "testmailtoteg.py", line 33
    print 'test'						
                     ^
IndentationError: unindent does not match any outer indentation level



Отредактировано mark24 (Сен. 20, 2013 07:14:05)

Офлайн

#4 Сен. 20, 2013 08:52:05

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Не могу добавить условие в классе.

У вас в коде и пробелы и знаки табуляции. Не используйте табуляцию вообще, используйте пробелы.

Офлайн

#5 Сен. 20, 2013 09:44:06

mark24
От:
Зарегистрирован: 2011-10-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу добавить условие в классе.

lorien
У вас в коде и пробелы и знаки табуляции. Не используйте табуляцию вообще, используйте пробелы.
Черт возьми! Переписывание всего класса с нуля помогло! Ну это жесть просто…



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version