Regexを使用して、Selenium.webDriver
を含むWebページの検索ボックスから特定のコンテンツを取得します。
searchbox = driver.find_element_by_class_name("searchbox")
searchbox_result = re.match(r"^.*(?=(\())", searchbox).group()
検索ボックスが正規表現に一致する結果を返す限り、コードは機能します。しかし、検索ボックスが文字列"No results"
で応答すると、エラーが発生します。
AttributeError: 'NoneType'オブジェクトには属性 'group'がありません
スクリプトで"No results"
の状況を処理するにはどうすればよいですか?
あなたがするとき
re.match("^.*(?=(\())", search_result.text)
その後、一致が見つからなかった場合、 None
が返されます。
文字列がパターンに一致しない場合は
None
を返します。これは長さがゼロの一致とは異なることに注意してください。
group
を適用する前に、結果が得られたことを確認する必要があります。
res = re.match("^.*(?=(\())", search_result.text)
if res:
# ...