2016-07-28 9 views
0

Die Ausgabe dieses Codeblocks gibt mir immer die "außer" zurück. In meinem Terminal wird kein spezifischer Fehler angezeigt. Was mache ich falsch ? Jede Hilfe wird geschätzt!Unbenannter Fehler mit Urllib2 und schöne Suppe

from bs4 import BeautifulSoup 
import csv 
import urllib2 

# get page source and create a BeautifulSoup object based on it 
try: 
    print("Fetching page.") 
    page = urllib2.open("http://siph0n.net") 
    soup = BeautifulSoup(page, 'lxml') 

    #specify tags the parameters are stored in 
    metaData = soup.find_all("a") 
except: 
    print("Error during fetch.") 
    exit() 
+1

Sie drucken den Fehler nicht, siehe Antwort @DeepSpace. Auch "offen" ist keine Funktion von urllib2. – snahor

+0

@snahor Danke! – dexray

+0

Wenn Sie nicht sicher sind, ob Ihr Code einwandfrei funktioniert oder nicht, verwenden Sie bitte nicht "try/except", um den Kernblock zu bearbeiten, noch schlimmer, drucken Sie die Fehlermeldung nicht aus. –

Antwort

0

Das ist "keine spezifischen Fehler in meinem Terminal gezeigt", weil Ihr except Block es Shadowing ist. Entfernen Sie entweder die try/except oder drucken Sie die Ausnahme in dem except Block:

try: 
    . 
    . 
    . 
except Exception as ex: 
    print(ex) 

Beachten Sie, dass die allgemeine Art Fang Exception ist in der Regel eine schlechte Idee. Ihre except Blöcke sollten immer den spezifischen Ausnahmetyp wie möglich abfangen.

+0

Der Fehler war, dass open keine Funktion von urllib2 war. Vielen Dank! – dexray

0

Sie können Anfragen zum Abrufen der Daten verwenden.

from bs4 import BeautifulSoup 
import requests 
import csv 
import urllib2 
# get page source and create a BeautifulSoup object based on it 
try: 
    print("Fetching page.") 
    page = requests.get("http://siph0n.net") 
    soup = BeautifulSoup(page, 'lxml') 

    #specify tags the parameters are stored in 
    metaData = soup.find_all("a") 
except Exception as ex: 
    print(ex) 
+0

Danke, das gab mir den Fehler und es ist jetzt behoben. – dexray