タダケンのEnjoy Tech

楽しみながらラクに成果を上げる仕組みを考える

Twitterからキーワード検索して画像を取得する

タイトルの通り、Twitterの検索APIを利用して、特定のキーワードの画像をダウンロードするためのスクリプトになります。

https://github.com/Code-Hex/twippai 参考にしたのはここ。

実行環境 OS:OX X EI Capitan(10.11.5) Python:2.7.10

標準ライブラリの他に、こららのインストールする必要があります。

  • requests
  • requests_oauthlib
#!/usr/bin/env/python
# coding: utf-8

import os
import json
import time
import requests
from hashlib import md5
from requests_oauthlib import OAuth1

def md5hex(str):
    a = md5()
    a.update(str)
    return a.hexdigest()
    
folder = './data'

#パスが存在していればTrueを返す
path = os.path.exists(folder)

if not path:
    os.mkdir(folder)

consumer_key = ''#your key
consumer_secret = ''#your key
access_token = ''#your key
access_token_secret = ''#your key

#Twitter APIについて以下参照
#https://syncer.jp/twitter-api-matome/get/search/tweets
url = 'https://api.twitter.com/1.1/search/tweets.json'
oauth = OAuth1(consumer_key,consumer_secret,
                access_token,access_token_secret)
                #署名メソッドの指定。なくても動いた
                #signaturemethod = 'HMAC-SHA1')
                
idnum = ''
count = 1
while count <= 10:
    #Twitterの検索演算子も使える
        query_form = {'q' : u'メタモン filter:images min_retweets:1',
                                        'lang' : 'ja',
                                        'count' : 100,
                                        'result_type' : 'recent',
                                        'max_id' : idnum}
        uri = requests.get(url, auth = oauth, params = query_form)
        json_loads = json.loads(uri.content)
        
        
        for data in json_loads['statuses']:
            if 'media' not in data['entities']:
                continue
            else:
                urls = data['entities']['media']
                media_urls = urls[0]['media_url']#画像のURLを取得
                downloads = requests.get(media_urls).content #画像のDL
                print media_urls + " " + str([count])
            #%sは文字列として置換
            
            #URLを16進数形式の文字列に返して、ファイル名としている?
            filename = '%s.jpg' % md5hex(urls[0]['media_url'])
            filepath = '%s/%s' % (folder, filename)
            
            images = open(filepath, 'wb')
            images.write(downloads)
            images.close()
            count += 1
        idum = data['id']
        time.sleep(1)

JavasriptでMacを制御

YosemiteからJavascriptで、macを制御できるようになったそうな。
以前からApplescriptの延長だと。

試しにTwitterのIDを取得してみた。

var Tw = Application("Twitter");
Tw.includeStandardAdditions = true
Tw.activate()
var Acc = Tw.accounts[0];
var Uname = Acc.username();

Tw.displayDialog(Uname)


参考にしたのはこの辺。

営業さんがSQL100本ノックでぐいぐい分析回すはなし

これ読んで、すごい面白かったので忘れないようメモ。情報公開の文化を作るっていうのは、今自分の関わっている仕事とも近しいことなので、凄い参考になった。データベースを公開するっていう話では、全然ないけど。てかフルオープンってすごいな。紹介されてたSQL100本ノックっていうのはちょっとやってみたい。同じタイミングで言語処理100本ノックもホットエントリしてた。

SQL Fiddle←SQLをWEB上で練習用

言語処理100本ノック 2015

 

どうでもいいけど、’営業さんま’にはちょっと吹いた。

 

Progateというプログラミング学習サイトがすごいいい感じ

最近、プログラミング学習サイトの「Progate」で、HTML、PHP、jQueryの勉強を
始めました。「Progate」の学習の流れは、①スライドで学習、②実際にコードを書く
③合ってるか確認するという三工程です。

Progeteがよいなとおもったところは以下の通りです。

  • ブラウザだけで、プログラミングの勉強ができる(環境構築しなくてよい)
  • ちゃんと動くサイトをつくれる(気になれる)
  • スライドをみる→自分で手を動かすの流れで頭に入りやすい

今のところ、HTMLとPHPは終わり、jQueryを途中までやりました。サクサク進んでおもしろい。今後はRubyも追加されるそうです。

 


Progate | Learn to Code, Learn to be Creative.

----

プログラミングの学習サイトはほかにも以下のサイトがあるみたいです。Progateが終わったらやってみたいな。

CODEPREP -オンラインでプログラミングを学ぼう-

コードの書き方を学ぼう | Codecademy