2016-10-19 35 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)' –