2016-05-24 13 views
-1

Code:Attribute: 'NoneType' Objekt hat kein Attribut 'unteren' in Python 3.4

import requests 
from bs4 import BeautifulSoup 
import operator 
def start(url): 
    word_list =[] 
    source_code =requests.get(url).text 
    soup = BeautifulSoup(source_code) 
    for post_string in soup.find_all('a',{'class':'cb-skin-ads-link'}): 
     content = post_string.string 
     words = content.lower() 
     for each_word in words: 
      print(each_word) 
      word_list.append(each_word) 

start('http://www.cricbuzz.com/live-cricket-scorecard/16445/gl-vs-rcb-qualifier-1-indian-premier-league-2016') 

Fehler:

Traceback (most recent call last): 
    File "C:/Users/Shera/PycharmProjects/Begin/wordcount.py", line 15, in <module> 
    start('http://www.cricbuzz.com/live-cricket-scorecard/16445/gl-vs-rcb-qualifier-1-indian-premier-league-2016') 
    File "C:/Users/Shera/PycharmProjects/Begin/wordcount.py", line 10, in start 
    words = content.lower() 
AttributeError: 'NoneType' object has no attribute 'lower' 
+2

Was ist Ihre Frage? –

+0

'Inhalt' ist keine' Zeichenkette' ... – henrikstroem

+1

Es gibt keinen Text in diesem Anker-Tag. Was versuchen Sie eigentlich zu parsen? –

Antwort

0

Aus irgendeinem Grund Inhalt ist Keine. Probieren Sie einen Debugger aus oder drucken Sie Anweisungen aus, um zu sehen, was Sie von soup.find_all erhalten. Es scheint, dass die Liste nicht leer ist, aber das String Attribut von mindestens einem Element ist None.

+0

Nach Ihrer Bearbeitung enthält der Beitrag zu viel Code und nicht genug Erklärung, um das "beautifulsoup" -Tag hinzufügen zu können - können Sie es hinzufügen? –

1

Um zu verstehen, was vor sich geht, sollten wir uns die documentation ansehen. Es gibt einen Fall, wenn .stringNone wäre:

If a tag contains more than one thing, then it’s not clear what .string should refer to, so .string is defined to be None

Sie in mit get_text() aussehen sollte stattdessen, dass die Kinder eines Elements berücksichtigen wäre auch:

content = post_string.get_text() 

Beachten Sie, dass dies helfen würde, vermeiden Sie den Fehler, aber Sie würden noch keine Ausgabe erhalten, da das Element, das Sie finden, wirklich keinen Text hat:

Verwandte Themen