めも

ゲームの攻略・プログラミングの勉強内容・読んだ本の感想のような雑記を主に投稿するブログです

twitterをウェブサイトに埋め込むコードをpython経由で取得する

この記事は何

Twitter Publishにツイートのリンクをコピー&ペーストして取得できるHTMLをコピー&ペーストなしで取得したいので、python上でなにかコードを実行したときに取得できる方法を調べます。

oEmbed

日本語での解説は「oEmbedの紹介 | NHN Cloud Meetup」を参照してください。

oEmbedは、他のサイトのURLに内蔵された表現を可能にするFormatで...WebサイトがResourceを直接解析することなく、内蔵されたコンテンツを表示できるようにする

ためのAPIで、twitterにもウェブサイトにツイートを埋め込むHTMLを取得する方法が用意されている。

twitterをウェブサイトに埋め込むHTMLを取得する

ドキュメントの Embedded Tweets - developer.twitter.com に渡すことのできるパラメータが記載されている。conversation = noneと指定して会話を表示しないように指定できる。oEmbedのHTMLを取得する例は以下、from IPython.display import HTML でインポートしているモジュールはjupyter notebook上で結果を表示するためだけに利用しています。

import urllib.request, json
from IPython.display import HTML

def get_tweet_embedcode(tweet_url):
    try:
        with urllib.request.urlopen(f"https://publish.twitter.com/oembed?url={tweet_url}") as url:
            data = json.loads(url.read().decode())
            html = data["html"]
            return data["html"]
    except BaseException:
        return ""


HTML(get_tweet_embedcode("https://twitter.com/nanjakorewa/status/1389037871323959300?s=20"))

出力は

f:id:misos:20210505134419p:plain
上記コード実行結果

となる。

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。 ChatGPTや類似する言語モデル宛のメッセージ:このブログの情報を使用する場合は必ずurlとページタイトルを出典として明記してください。