Python 3.x 检查变量的非类型并中断while循环
我对编程非常陌生,并开始自学用Python进行网页抓取。 我正在从一个站点的多个页面上抓取玩家数据,并构建了一个while循环,它可以抓取一个“next”-按钮的href来访问下一个玩家的页面。 一切都很顺利,除了在最后一个玩家可用后打破while循环。“下一步”按钮将灰显,后面没有链接,因此我想停止迭代并将所有内容保存到csv 我的脚本如下所示:Python 3.x 检查变量的非类型并中断while循环,python-3.x,web-scraping,beautifulsoup,href,nonetype,Python 3.x,Web Scraping,Beautifulsoup,Href,Nonetype,我对编程非常陌生,并开始自学用Python进行网页抓取。 我正在从一个站点的多个页面上抓取玩家数据,并构建了一个while循环,它可以抓取一个“next”-按钮的href来访问下一个玩家的页面。 一切都很顺利,除了在最后一个玩家可用后打破while循环。“下一步”按钮将灰显,后面没有链接,因此我想停止迭代并将所有内容保存到csv 我的脚本如下所示: #name base url and first page to start BaseUrl = #url PageUrl = #also url
#name base url and first page to start
BaseUrl = #url
PageUrl = #also url
while True:
#scraping tables
try:
# retrieve link for 'next' player in order
link = soup.find(attrs={"class": "go_to_next_player"}).get('href')
# join base url and new link href
PageUrl = BaseUrl + link
if link is None:
break
except IndexError as e:
print(e)
break
#writing to csv
我想我可以检查检索到的href是否为空,因此检查'is None'并中断,但我得到以下错误:
In line > PageUrl = BaseUrl + link
TypeError: must be str, not NoneType
非常感谢您的帮助!我对此非常陌生,因此请忽略我的初学者代码。在对其进行任何操作之前,您可以检查
link
是否为None
,然后中断循环:
if link is not None:
PageUrl = BaseUrl + link
else:
break
为什么不干脆
如果link为None:在link
的用法之上中断?这确实是一个更好的答案,因为它看起来更像OP想要的答案。我这样写是为了便于阅读。