2016-10-19 55 views
1

我完全noob蟒蛇,所以請原諒我的錯誤和缺乏詞彙。我試圖用BeautifulSoup報廢一些網址。我的網址來自GA api電話,其中一些不響應。錯誤處理與BeautifulSoup當刮網址沒有響應

如何構建我的腳本,以便BeautifulSoup忽略不返回任何內容的url?

這裏是我的代碼:

if results: 
    for row in results.get('rows'): 
     rawdata.append(row[0]) 
    else: 
    print 'No results found' 

    urllist = [mystring + x for x in rawdata] 

    for row in urllist[4:8]: 

    page = urllib2.urlopen(row) 
    soup = BeautifulSoup(page, 'html.parser') 


    name_box = soup.find(attrs={'class': 'nb-shares'}) 
    share = name_box.text.strip() 

    # save the data in tuple 
    sharelist.append((row,share)) 

    print(sharelist) 

我試圖用這樣的:

except Exception: 
    pass 

,但我不知道在哪裏,並得到了一些語法錯誤。我看過其他問題,但找不到任何答案。

+0

你需要一個'try'之前'except' – Mangohero1

回答

1

您可以檢查name_box變量的值 - 這將是None如果沒有發現:

for row in urllist[4:8]: 
    page = urllib2.urlopen(row) 
    soup = BeautifulSoup(page, 'html.parser') 

    name_box = soup.find(attrs={'class': 'nb-shares'}) 
    if name_box is None: 
     continue 

    # ... 
+0

我想這是工作,但我真的不能查因爲現在我有以下錯誤:UnicodeEncodeError:'ascii'編解碼器無法在位置22編碼字符u'\ u200b':序號不在範圍內(128)' –