为了账号安全,请及时绑定邮箱和手机立即绑定

在BeautifulSoup.findAll函数中捕获异常

在BeautifulSoup.findAll函数中捕获异常

守着一只汪 2021-03-19 07:03:44
我正在尝试通过提取中的城市和区号来抓取此阿富汗页面table。现在,当我尝试刮擦此美国萨摩亚页面时,findAll()找不到<td>正确的页面。如何捕获此异常?这是我的代码:from bs4 import BeautifulSoup                                                                                                                                                                                                                import urllib2                                                                                                                                                                                                                               import re                                                                                                                                                                                                                                    url = "http://www.howtocallabroad.com/american-samoa"html_page = urllib2.urlopen(url)soup = BeautifulSoup(html_page)areatable = soup.find('table',{'id':'codes'})d = {}def chunks(l, n):    return [l[i:i+n] for i in range(0, len(l), n)]li = dict(chunks([i.text for i in areatable.findAll('td')], 2))if li != []:    print li    for key in li:            print key, ":", li[key]else:    print "list is empty"这是我得到的错误Traceback (most recent call last):  File "extract_table.py", line 15, in <module>    li = dict(chunks([i.text for i in areatable.findAll('td')], 2))AttributeError: 'NoneType' object has no attribute 'findAll'我也试过了,但是也没用def gettdtag(tag):    return "empty" if areatable.findAll(tag) is None else tagall_td = gettdtag('td')print all_td
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

错误说areatable是None:


areatable = soup.find('table',{'id':'codes'})

#areatable = soup.find('table', id='codes')  # Also works


if areatable is None:

    print 'Something happened'

    # Exit out

另外,我会用find_all代替findAll和get_text()代替text。


查看完整回答
反对 回复 2021-03-30
  • 1 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号