前提・実現したいこと
あるサイトにおいて特定の文字列を取得したい
test codeでは正常に動作していたため
どこで問題があるか知りたい,解决したい
発生している問題・エラーメッセージ
AttributeError Traceback (most recent call last) <ipython-input-4-21ad6109705f> in <module>() 30 31 ---> 32 s = m.group(0) 33 print(s) 34 AttributeError: 'NoneType' object has no attribute 'group'
該当のソースコード
python
1import urllib.request 2#正規表現に使う 3import re 4 5 6#url = "任意のURL" 7url = "url載せるのはまずいかもしれないので避けます" 8 9res = urllib.request.urlopen(url) 10 11html = res.read().decode("utf-8") 12#ここまでがhtml抽出 13#print(html) 14 15#欲しい文字列A:曲名,欲しい文字列B:歌手名 16#パターン1 17#r = re.compile("<span id="song_artistName" class="">(欲しい文字列A)/(欲しい文字列B)</span>") 18r = re.compile('<span id="song_artistName" class="">(.*?)/(.*?)</span>') 19 20#パターン2 21#r_a= re.compile('<td class="dlg cell song"><div class="dlg">(欲しい文字列A)</div></td>') 22#r_b = re.compile('<td class="dlg cell artist "><div class="dlg">(欲しい文字列B)</div></td>') 23 24#r_a = re.compile('<td class="dlg cell song"><div class="dlg">(.*?)</div></td>') 25#r_b = re.compile('<td class="dlg cell artist "><div class="dlg">(.*?)</div></td>') 26 27 28m = r.search(html) 29#m = r_b.search(html) 30#m = r_a.search(html) 31 32 33s = m.group(0) 34print(s) 35 36s = re.sub("<.*?>", "", s) 37print("曲名:"+ s) 38 39 40 41""" 42f = open("test.html", "w", encoding="utf-8") 43f.write(html) 44f.close() 45print("test.htmlに書き込みました") 46"""
試したこと
test codeでは欲しい文字列は<span></span>で囲まれていたため
とりあえずパターン1のcodeから取得しようと試みました
group()が反応しないということは
m すなわちr.searchが正常に動作していないと思います
後はr.searchがダメなのかre.compileがダメなのか分かればいいのですが…
分かりません
パターン1とパターン2では同じエラーが出ました
当該のwebページではパターン2に対応する部分をクリックなどして選択したときにパターン1に対応する部分が表示されるような仕組みでした
補足情報(FW/ツールのバージョンなど)
google colaboratoryで実行しています
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。