質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Q&A

解決済

1回答

3756閲覧

【Python 2.7.10】Tweepyで画像のURLを取得できないか

nnahito

総合スコア2004

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

1グッド

0クリップ

投稿2016/09/22 14:02

編集2016/09/22 14:03

質問

python2.7.10で、tweepyを先日使い始めました。
tweepyをpipで入れたので、バージョンは3.5.0だと思われます(調べ方がまだ分かっていない)。

streamingAPIで、タイムライン上の呟きから、画像データを抜いていきたいと思っています。

一応リファレンス(http://docs.tweepy.org/en/v3.5.0/api.html#tweepy-api-twitter-api-wrapper)を確認したのですが、
どうも、画像を取得するAPIがない模様。
と言うか、そもそもStreamingAPIの解説が載っていない!?

とりあえず、以下のサイト様のコードを整形しつつコピペしたら、タイムラインは取得できるようになりました。
(整形したプログラムは後ほど記載します。)
http://monowasure78.hatenablog.com/entry/2013/11/26/tweepy%E3%81%A7streaming%E3%82%92%E4%BD%BF%E3%81%86

しかし、この「status」と言うものにはどのようなデータが入っていて、どのように抜き出しているのかが分かりません。
(オブジェクト指向がそもそも苦手で……N88BASIC育ちの人間なので……)

返ってきたデータから、画像を抜き出すにはどのようなメソッド?を使えば良いのでしょうか。
ご存じの方がいらっしゃいましたら、ご教示ください。
よろしくお願いいたします。

整形したプログラム

lang

1#!/usr/bin/env python 2# -*- coding: utf8 -*- 3 4import tweepy 5 6# 7# oAuth情報を取得 8# 9def get_oauth(): 10 consumer_key = "略" 11 consumer_secret = "略" 12 access_token = "略" 13 access_secret = "略" 14 15 auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 16 auth.set_access_token(access_token, access_secret) 17 return auth 18 19class myExeption(Exception): pass 20 21class StreamListener(tweepy.streaming.StreamListener): 22 23 def __init__(self): 24 super(StreamListener,self).__init__() 25 26 def on_status(self, status): 27 text = status.text #本文 28 date = status.created_at #ツイートされた日時(確かdatetime型) 29 name = status.author.name #投稿者id名(unicode型、sqlite3で都合が良いので.encode("utf-8")とはしませんでした 30 screen_name = status.author.screen_name #投稿者の名前 31 img = status.author.profile_image_url #投稿者のプロファイル画像 32 33 print text 34 35 36 return True 37 38 39if __name__ == '__main__': 40 auth = get_oauth() 41 stream = tweepy.Stream(auth, StreamListener()) 42 43 while True : 44 try: 45 print "in" 46 stream.userstream() 47 48 except myExeption() : #twitterに弾かれた場合は少し待って接続し直します 49 time.sleep(60) 50 stream = tweepy.Stream(auth,StreamListener()) 51 52 53#oauth = authorize(consumer_key, consumer_secret, access_token, access_secret)

環境

MacOS X 10.10.5(yosemite)
python 2.7.10

manzyun👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

一応自己解決。
もっとスマートなやり方があれば、募集します。

entities = status.entities if ( entities.has_key("media") == True ): media = entities["media"]

これで取れるのね

投稿2016/09/22 18:30

nnahito

総合スコア2004

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問