2017-12-07 11 views
1

Ich habe nach einer Lösung für dieses AttributeError gesucht, das ich bekomme, und keine Lösung, die ich gefunden habe, beschäftigt sich mit '_all_strings'.Warum bekomme ich diesen (scheinbar) ungewöhnlichen AttributeError: Das Objekt 'Bytes' hat kein Attribut '_all_strings'? Gibt es einen Weg, um es zu umgehen?

Ich möchte einen Web-Crawler programmieren, aber am oberen und unteren Rand der Seite gibt es viel Unsinn, also versuche ich, den HTML-Code als Vorläufer zu entfernen, um das unerwünschte Rauschen an der Spitze auszuschließen und unten auf der Webseite.

Wenn ich den Code ausführen, speziell, erhalte die letzte Zeile, ich ein Attribut:

from __future__ import division 
from urllib.request import urlopen 
from bs4 import BeautifulSoup 

textSource = 'http://celt.ucc.ie/irlpage.html' 
html = urlopen(textSource).read() 
raw = BeautifulSoup.get_text(html) 

Dies ist die vollständige Traceback ich:

Traceback (most recent call last): 
    File "...Crawler_Celt_Namelink_Test.py", line 7, in <module> 
    raw = BeautifulSoup.get_text(html) 
    File "...Python\Python35\lib\site-packages\bs4\element.py", line 950, in get_text 
    return separator.join([s for s in self._all_strings(
AttributeError: 'bytes' object has no attribute '_all_strings' 

jemand dies gestoßen Fehler vorher? Oder kann jemand vorschlagen, wie ich es überwinden kann, bitte?

Antwort

1

Wenn Sie die BeautifulSoup docs betrachten es wird wie folgt verwendet:

from urllib.request import urlopen 
from bs4 import BeautifulSoup 
textSource = 'http://celt.ucc.ie/irlpage.html' 
html = urlopen(textSource).read() 

soup = BeautifulSoup(html, 'html.parser') 

raw = BeautifulSoup.get_text(soup) 
Verwandte Themen