[python]twitterでフォローしている人の画像を一括ダウンロード
特定のユーザがtwitterにアップロードした画像を一括でダウンロードするpythonプログラムを作成しました。
環境
python 2.7.5
tweepyのインストール
twitter用のpythonモジュールであるtweepyをインストールします。
[python2.7]でtweepyモジュールをインストールする
python2.7でtweepyモジュールをインストールはpipコマンドがインストールされている必要があります。 http://daichan.club/python/983 これでtweepyモジュールが使えるようになりました。
twitte APIへのアクセス
pythonからtwitter APIにアクセスするときに次の4つの鍵が必要になります。
Consumer Key
Consumer Secret
Access Token
Access Token Secret
twitter APIへのアクセスの仕方は下記サイトを参考にしました。
Tweepyを使って、PythonでTwitterのAPIを超簡単に操作する - StatsBeginner: 初学者の統計学習ノート
PythonでTwitterのAPIを触りたい PythonでTwitterのAPIを操作し、検索の自動化による情報収集・解析とか、自動でつぶやくbotの作成を可能にしたい。 そこでTweepyというライブラリを使うと、とても簡単に態勢が整いました。10行以内のコードで準備が終わります。 Tweepy ちなみにTwitterのAPIは「REST API」と「Streaming API」の2種類があって、今回使うのはREST APIのほうです。REST APIは(RESTというものの説明はREST - Wikipediaでもみてください)、HTTPリクエストを投げるとそれに対応した情報がjson…
取得した鍵をtw.pyファイルの#鍵の部分に記載する。
tw.pyファイルを実行すると、同じ階層にmonkeydaichanというディレクトリが作られます。
そのディレクトリの中に画像がダウンロードされていきます。
ユーザを変更したい場合は
names = {"monkey":"monkeydaichan"}
のmonkeydaichanをユーザのIDに変更してください。
実行ファイルの作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import sys import tweepy as tp import urllib import os #鍵 CONSUMER_KEY = "XXXXXXXXXXXXXXXXXXXXXXXX" CONSUMER_SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ACCESS_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ACCESS_SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" auth = tp.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET) api = tp.API(auth) names = {"monkey":"monkeydaichan"} for name,twi_id in names.items(): maxid = api.user_timeline(twi_id).max_id if os.path.exists("./monkeydaichan/" + name) == False: os.makedirs("./monkeydaichan/" + name) for l in range(16): for twi in api.user_timeline(twi_id, count=200, max_id=maxid): if hasattr(twi, "extended_entities"): if twi.extended_entities.has_key("media"): for index,media in enumerate(twi.extended_entities["media"]): img_url = media["media_url_https"] print(name + " image " + str(img_url) + " save to ./monkeydaichan/" + name) img = urllib.urlopen(img_url) tmp_path = open("./monkeydaichan/" + name + "/" + os.path.basename(img_url), "wb") tmp_path.write(img.read()) img.close() tmp_path.close() maxid = twi.id |