Начало работы с Python: ошибка атрибута - PullRequest
2 голосов
/ 04 мая 2010

Я новичок в python и только что скачал его сегодня. Я использую его для работы с веб-пауком, поэтому, чтобы проверить его и убедиться, что все работает, я скачал образец кода. К сожалению, это не работает и выдает ошибку:

«AttributeError: у объекта« MyShell »нет атрибута« загружен »»

Я не уверен, что в самом коде есть ошибка или я не смог правильно что-то сделать при установке python. Есть ли что-то, что вам нужно сделать при установке python, например, добавить переменные окружения и т. Д.? И что вообще означает эта ошибка?

Вот пример кода, который я использовал с импортированным классом паука:

import chilkat
spider = chilkat.CkSpider()
spider.Initialize("www.chilkatsoft.com")
spider.AddUnspidered("http://www.chilkatsoft.com/")
for i in range(0,10):
    success = spider.CrawlNext()
    if (success == True):
        print spider.lastUrl()
    else:
        if (spider.get_NumUnspidered() == 0):
            print "No more URLs to spider"
        else:
            print spider.lastErrorText()

    #  Sleep 1 second before spidering the next URL.
    spider.SleepMs(1000)

Ответы [ 2 ]

6 голосов
/ 05 мая 2010

А что вообще делает эта ошибка значит?

Атрибут в Python - это имя, принадлежащее объекту - методу или переменной. AttributeError означает, что программа пыталась использовать атрибут объекта, но у объекта не было запрошенного атрибута.

Например, строковые объекты имеют атрибут 'upper', который является методом, возвращающим версию строки в верхнем регистре. Вы можете написать метод, который использует его следующим образом:

def get_upper(my_string):
  return my_string.upper()

Однако обратите внимание, что в этом методе нет ничего, что могло бы гарантировать, что у вас есть , чтобы дать ему строку. Вы можете передать в файл объект или число. Ни один из них не имеет атрибута 'upper', и Python выдаст ошибку атрибута.

Что касается того, почему вы видите это в этом случае, вы не предоставили достаточно подробностей, чтобы мы могли это решить. Добавьте полное сообщение об ошибке на ваш вопрос.

0 голосов
/ 04 мая 2010

1) Поместите код в Try ... Кроме блока. получить подробную информацию об исключении.

2) Не могли бы вы сообщить, что детали StackTrace означают, какая строка # и метод вызвали ошибку

А также вы можете запускать другие простые скрипты Python без каких-либо ошибок. Значит, просто попробуйте запустить пример сценария и т. Д.

...