2016-08-31 4 views
1

Я очень новичок в чудесном мире python. Следующий скребок дает объект, не вызываемый ошибкой, и я действительно не понимаю, почему это возможно. Любая помощь очень высоко ценится«Объект NoneType не может быть вызван» в BeautifulSoup findall()

from urllib.request import urlopen 
from bs4 import BeautifulSoup 
html = urlopen("https://www.maxxim.de/lte-mini-sms1?maxxim=7hs6q1jfl95fip6qumcum4rfh4") 
bsObj = BeautifulSoup(html,"html.parser") 
nameList = bsObj.findall("h2") 
for name in nameList: 
    print (name.get_text()) 
+1

Вам нужно добавить полную трассировку, чтобы мы могли видеть, какая строка дает ошибку. Вы должны потратить время на чтение [mcve]. –

+0

Это либо ['find_all'] (https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all), либо [' findAll'] (https://www.crummy.com/software/BeautifulSoup/bs4/doc/#) с верхним регистром 'A'. - В общем, «NoneType not callable» является признаком того, что вы пытаетесь использовать что-то как функцию/метод, который не существует. – poke

ответ

1

Использование find_all("h2") вместо findall("h2").

+0

Это только половина правильно. 'find_all' работает, но также' findAll' (обратите внимание на верхний регистр 'A'). 'findall' с другой стороны не существует, и, таким образом, обращение к' bsObj.findall' возвращает 'None' и пытается вызвать его' bsObj.findall() 'дает видимую ошибку. Если он просто вернул «Нет», вы не получили бы эту ошибку, а скорее другую, только одну строку позже, что вы не можете перебирать None. – poke

+0

Я сдулся. Большое спасибо за ваши быстрые ответы. Я также рассмотрю цитируемую статью. –

+0

@ DanielP Я рад, что смог помочь! Не забудьте принять мой ответ, если он решит вашу проблему. –

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