我在 Python 下使用 BeautifulSoup 进行相当多的数据抓取和清理,并且经常附加.text.strip()
到 soup.find 命令。例子:foo_stuff = soup.find("foo").text.strip()
在某些情况下, asoup.find
什么也找不到,因此.text.strip()
会中断。如我所见,我可以通过以下几种方式处理:
- 编写
.find
总是返回一些东西的查询——我不是一个足够聪明的人来以一种干净的方式来构建我的查询。 - 对每一个都使用 try/except 语句
.text.strip()
——代码很难看。 - 我可以修补 .find 命令以获得 try/except,或者包含一个
.myfind
执行类似操作的命令——这涉及到我修补东西并可能会甩掉协作者。
那里的其他人有更好/更聪明的解决方案来解决这个问题吗?
编辑:现在我正在使用一个无聊的 ol' 函数来尝试/除.text.strip()
:
def text_strip(soup_search):
if soup_search != None:
return soup_search.text.strip()
else:
return ""