python正規表現エラー (AttributeError: 'NoneType' オブジェクトに 'group' 属性がない)
2022-01-22 07:05:19
プロジェクトのシナリオです。
Python初心者がクローリングすると、一部のページが他のページとレイアウトがずれているため、reで設定した条件にマッチせず、python正規表現エラー(AttributeError: 'NoneType' object has no attribute 'group')が発生することがあります。
問題の説明
正規表現のマッチ結果がnullかどうかを判断する手段が必要で、最初はネットに書いてあることを元に読み方を書いたのですが、どれもうまくいかず、最終的にstackoverflowで正しい解決策を見ました。
最初のものは例外処理に try except を使っており、その結果、例外をキャッチできません。
try: # Code that may throw an exception, put it under try
code1 #If an exception occurs in any line of code inside try, # jump directly to except and execute the code under except, but my code did not catch it.
code2
except:
code3
code4
- 1
- 2
- 3
- 4
- 5
- 6
2つ目はif判定を使っていますが、Webに書いてあるやり方では私のコードではうまくいきません
import re
test_str = "abcdefghijklmn"
obj = re.compile(r"1(?P<test>. *?) 2",re.S)
result = obj.search(resp.text)
if result.group("test") is None: # here is a direct error
print("error")
else:
print("ok")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
解決策
import re
test_str = "abcdefghijklmn"
obj = re.compile(r"1(?P<test>. *?) 2",re.S)
result = obj.search(resp.text)
if not result: # Use this to determine if a regular expression matches
print("error")
else:
print(result.group("test"))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
関連
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】ipythonで変数をクリアする方法は?
-
Python は tempfile パッケージを使用してコードを簡単にトレースなしで実行します。
-
[解決済み] python-dev のインストールエラーです。ImportError: apt_pkg という名前のモジュールがありません。
-
[解決済み] S3からspark dataframe Pythonにparquetデータを読み込むには?
-
[解決済み] Pythonで現在のモジュール内のすべてのクラスのリストを取得するにはどうすればよいですか?
-
[解決済み] Djangoです。CSRF トークンがないか、間違っている
-
Selenium ライブラリ 'list' オブジェクトの python クローラーに属性 'send_keys' がないエラー。
-
Pythonの入れ子リスト
-
TypeError: 'list' オブジェクトは整数値として解釈できません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Python: AttributeError: '_io.TextIOWrapper' オブジェクトに 'split' 属性がない。
-
[解決済み】Pythonのsocket.errorです。[Errno 111] 接続が拒否されました。
-
[解決済み】Djangoのクエリセットフィルタリングでnot equalを行うにはどうすればよいですか?
-
pygame.error:ビデオシステムが初期化されていない場合の解決方法
-
Pythonのリストフィルタリングデータの説明
-
[解決済み] Pythonでログを取るためのタイムスタンプを表示する
-
[解決済み] Pythonで括弧を表示する方法
-
[解決済み] Python HTML Encoding \xc2xa0
-
OperationalError: データベースファイルを開くことができません。
-
python3 学習メモ 1 - TypeError: 'dict' オブジェクトが呼び出し可能でない 解決法