1. ホーム
  2. python

[解決済み] 'NoneType' オブジェクトに 'group' 属性がない

2022-02-04 04:14:07

質問

このコードで誰か助けてくれませんか?私はビデオを再生するpythonスクリプトを作ろうとしていて、Youtubeのビデオをダウンロードするこのファイルを見つけました。私は何が起こっているのか完全に理解していませんし、このエラーを理解することはできません。

エラーです。

AttributeError: 'NoneType' object has no attribute 'group'

トレースバックです。

Traceback (most recent call last):
  File "youtube.py", line 67, in <module>
    videoUrl = getVideoUrl(content)
  File "youtube.py", line 11, in getVideoUrl
    grps = fmtre.group(0).split('&amp;')

コードスニペットです。

(66-71行目)

content = resp.read()
videoUrl = getVideoUrl(content)

if videoUrl is not None:
    print('Video URL cannot be found')
    exit(1)

(9-17行目)

def getVideoUrl(content):
    fmtre = re.search('(?<=fmt_url_map=).*', content)
    grps = fmtre.group(0).split('&amp;')
    vurls = urllib2.unquote(grps[0])
    videoUrl = None
    for vurl in vurls.split('|'):
        if vurl.find('itag=5') > 0:
            return vurl
    return None

解決方法は?

エラーは11行目、あなたの re.search は結果を返さない、つまり None を呼び出そうとすると fmtre.group しかし fmtreNone であり、それゆえ AttributeError .

試してみてはいかがでしょうか。

def getVideoUrl(content):
    fmtre = re.search('(?<=fmt_url_map=).*', content)
    if fmtre is None:
        return None
    grps = fmtre.group(0).split('&amp;')
    vurls = urllib2.unquote(grps[0])
    videoUrl = None
    for vurl in vurls.split('|'):
        if vurl.find('itag=5') > 0:
            return vurl
    return None