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