📹
Tweepyでコンテンツ取得
前提
- Pythonインストール済
- Tweepyインストール済
- Twitter APIのアクセストークンの取得済
コード
python
import tweepy
from time import sleep
import os
import urllib.error
import urllib.request
#ファイルを保存するディレクトリ作成
if not os.path.exists('video'):
os.mkdir('video')
if not os.path.exists('photo'):
os.mkdir('photo')
#認証
consumer_key = "予め取得したconsumer_key"
consumer_secret = "予め取得したconsumer_secret"
access_token = "予め取得したaccess_token"
access_token_secret = "予め取得したaccess_token_secret"
#Twitterオブジェクトの生成
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
#ツイート取得
results = tweepy.Cursor(api.user_timeline,
id="取得したいツイートのアカウント",
include_entities=True,
tweet_mode='extended',
lang='ja').items("数の指定")
for result in results:
try:
#コンテンツ取得
media = result.extended_entities['media']
for m in media:
#動画の時
if m['type'] == 'video':
origin = [variant['url'] for variant in m['video_info']
['variants'] if variant['content_type'] == 'video/mp4'][0]
dst_path = 'video/{}.mp4'.format(datetime.datetime.now())
download_file(origin, dst_path)
try:
with urllib.request.urlopen(origin) as web_file:
data = web_file.read()
with open(dst_path, mode='wb') as local_file:
local_file.write(data)
except urllib.error.URLError as e:
print(e)
#画像の時
elif m['type'] == 'photo':
img_url = result.extended_entities['media'][0]['media_url']
dst_path = 'photo/{}.png'.format(datetime.datetime.now())
download_file(img_url, dst_path)
else:
origin = m['media_url_https']
sleep(1)
except:
pass
Discussion