Python 웹 메타 데이터를 가져오는 micawber 라이브러리 알아보기

오늘은 Python에서 링크에서 웹 메타 데이터를 가져와서 출력해주는 micawber 라이브러리를 알아보려 합니다.

micawber 설치

우선 virtualenv로 파이썬 환경을 분리해줍니다.

pip3 install virtualenv
virtualenv -mvenv env

env라는 이름의 가상 환경을 생성합니다.

source env/bin/activate

가상환경을 폴더에서 활성화합니다.

pip3 install --upgrade pip

pip의 업그레이드가 존재하는지 확인하고 진행합니다.

pip install micawber

pip로 micawber를 설치합니다.

embed

import micawber
providers = micawber.bootstrap_basic()
embed_output = providers.parse_text('바로 보기 : \n https://www.youtube.com/watch?v=R6IT_f0XPT8')
print(embed_output)

유튜브 링크를 감지해서 embed 형식으로 변환할 수 있습니다.

바로 보기 : 
<iframe width="480" height="270" src="https://www.youtube.com/embed/R6IT_f0XPT8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

위와 같이 변환되어 출력됩니다.

provider

from micawber.providers import Provider, bootstrap_oembed
from pprint import pprint

youtube = Provider('http://www.youtube.com/oembed')
test = youtube.request('https://www.youtube.com/watch?v=R6IT_f0XPT8')
pprint(test)

Provider로 유튜브 주소를 지정하고 웹 컨텐츠를 요청하면 비디오의 제목부터 게시자까지 딕셔너리로 출력됩니다.

providers = bootstrap_oembed()

bootstrap_oembed 객체를 생성합니다.

"""
    {
        "provider_name": "YouTube",
        "provider_url": "https:\/\/www.youtube.com\/",
        "endpoints": [
            {
                "schemes": [
                    "https:\/\/*.youtube.com\/watch*",
                    "https:\/\/*.youtube.com\/v\/*",
                    "https:\/\/youtu.be\/*"
                ],
                "url": "https:\/\/www.youtube.com\/oembed",
                "discovery": true
            }
        ]
    },
"""

https://oembed.com/providers.json 에서 YouTube를 찾으면 위와 같습니다.

oEmbed에 의해 endpoints를 쉽게 알 수 있게 됩니다.

test = providers.request('https://www.youtube.com/watch?v=R6IT_f0XPT8')
pprint(test)

그래서 providers로도 유튜브 주소에 존재하는 메타 데이터를 받을 수 있게 됩니다.

Written on July 21, 2019