私は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 ""