2016-12-05 29 views
0

我有函數,它的要求,並通過URL獲取頁:除開放網址BeautifulSoup?

def openUrl(similar_url): 
    print("Open URL: " + similar_url) 

    try: 
     req = urllib.request.Request(similar_url) 
     return urllib.request.urlopen(req).read() 

    except urllib.error.URLError as e: 
     print("HTTP Response: " + str(e.code)) 

我調用這個函數從另一個:

def get(url): 

    content = openUrl(url); 

try: 
    soup = BeautifulSoup(content, "html.parser") 
except: 
    pass 

    for url in urls: 
     get(url) 

問題是,如果我在openUrl得到例外然後我在soup = BeautifulSoup(content, "html.parser")得到埃羅,因爲我試圖得到空的內容。

我該怎麼做,除非跳過這個迭代,當錯誤是?

回答

0

return *WHAT YOU WANT*內異常塊

try: 
    req = urllib.request.Request(similar_url) 
    return urllib.request.urlopen(req).read() 

except urllib.error.URLError as e: 
    print("HTTP Response: " + str(e.code)) 
    return None # or return "" 

,你可以這樣調用

def get(url): 
    try: 
     content = openUrl(url) # remove semicolon 
    except: 
     pass 
    else: 
     if contents is not None: 
      soup = BeautifulSoup(content, "html.parser")