2016-07-24 4 views
-2

ich schöne Suppe 4.5 mit Python 3.4 auf Windows 7. Hier leite ist mein Skript:Beautfil Soup Fehler mit einfachen Skript

from bs4 import BeautifulSoup 
import urllib3 

http = urllib3.PoolManager() 

url = 'https://scholar.google.com' 
response = http.request('GET', url) 
html2 = response.read() 
soup = BeautifulSoup([html2]) 

print (type(soup)) 

Hier ist der Fehler Ich erhalte:

TypeError: Expected String or Buffer

I habe recherchiert und es scheint keine Fixes zu geben, außer zu einer älteren Version von Beautiful Soup zu gehen, die ich nicht machen möchte. Jede Hilfe würde sehr geschätzt werden.

Antwort

0

nicht sicher, warum setzen Sie den HTML-String in der Liste hier:

soup = BeautifulSoup([html2]) 

Ersetzen Sie es mit:

soup = BeautifulSoup(html2) 

Oder Sie auch die Antwortdatei-ähnliches Objekt passieren kann, BeautifulSoup wäre es für Sie gelesen:

response = http.request('GET', url) 
soup = BeautifulSoup(response) 

Es ist auch eine gute Idee, geben Sie einen Parser explizit:

soup = BeautifulSoup(html2, "html.parser") 
+0

Dank! Ich dachte, dass ich das probiert habe, aber ich denke nicht, weil das die Fehlermeldung losgeworden ist. – user235511

+0

Fertig. Und thx Jungs. – user235511