Python错误-AttributeError:';非类型';对象没有属性';拆分';

Python错误-AttributeError:';非类型';对象没有属性';拆分';,python,Python,以下是错误: 模块中第34行的文件“f**.py” url_type = url.split('-')[0][-2:] # 这是整个街区: fit_urls = [] for event_url in event_urls: print event_url try: sock = urllib.urlopen(event_url) event_html = sock.read() event_soup = BeautifulSoup(event_html)

以下是错误:

模块中第34行的文件“f**.py”

url_type = url.split('-')[0][-2:] #
这是整个街区:

fit_urls = []
for event_url in event_urls: 
  print event_url
  try:
    sock = urllib.urlopen(event_url)
    event_html = sock.read()
    event_soup = BeautifulSoup(event_html)

    tds = event_soup.find_all('td')
    for td in tds:
        for link in td.find_all('a'):
            url = link.get('href')
            url_type = url.split('-')[0][-2:] letters
            if url_type == 'ht': 
                #print url
                fit_urls.append(url)

except HTTPError:
    pass

`

这是因为您的任何
'link'
没有
'href'
属性。在执行
url=link.get('href')
之前,您可以通过添加
打印链接来验证它

为了解决此问题,您可以添加一个附加的
if
检查以过滤以下链接:

for td in tds:
    for link in td.find_all('a'):
        url = link.get('href')
        if url:   # additional check. will be `False` when `'url'` will be `None`
            url_type = url.split('-')[0][-2:] letters
            # Your rest of the code

看起来
url=link.get('href')
正在返回
None
。您可以在循环中检查
None

for td in tds:
    for link in td.find_all('a'):
        url = link.get('href')
        if not url:
            continue
        url_type = url.split('-')[0][-2:] letters
        if url_type == 'ht': 
            #print url
            fit_urls.append(url)

没有链接
link.get
生成
None
,因为其中没有
'href'
。它看起来像
url=link。get('href')
返回
None
,即在链接中找不到url(或者找不到
链接,具体取决于库的行为)