如果它是非类型对象,如何通过?

时间:2018-05-19 07:40:59

标签: python-3.x web-scraping beautifulsoup

我已经建立了一个可以拉动比赛的机器人。来自HLTV的信息。问题是,在上午10点之前,没有任何现场比赛。当我的机器人试图拉动页面的链接时,它会出错。

我试图忽略它:

if links is None:
    pass

将我视为:

'Nonetype' object has no attribute find_all('a')

我试过尝试除了但是当我使用try时,除了它一次又一次地获取所有代码。我的意思是像循环循环一样思考。 :D哪个很烦人。有什么办法可以解决吗?

我的代码在这里,但你不会接受这个错误,因为它过了上午10点:D

from bs4 import BeautifulSoup
import requests, datetime
matchlinks_lm = []
r = requests.get('https://hltv.org/matches')
sauce = r.content
soup = BeautifulSoup(sauce, 'lxml')
for links in soup.find('div', class_='live-matches').find_all('a'):
    matchlinks_lm.append('https://hltv.org' + links.get('href'))

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您已将.find()find_all()的来电链接到

for links in soup.find('div', class_='live-matches').find_all('a'):

这使得无法在第一个NoneType中发现错误或.find()

你可以这样做:

div = soup.find('div', class_='live-matches')
if div is not None:
    for link in div.find_all("a"):
        if link is None:
            continue
        matchlinks_lm.append('https://hltv.org' + links.get('href'))