前回(https://webtopi.biz/archives/900)でファイル取得ができるようになったので、今度はTwitter api でデータ取得してみたいと思うのだ
requests-oauthlib をインストールする
requests-oauthlib を使ってできるらしいですので、インストールしておきます
(env) pip install requests-oauthlib
~~~~
Success~~
~~~~
何やらSuccessとか出たので大丈夫らしいです。Linuxに何かをインストールする時はエラーばかり出やがってむかついてましたが、Pythonはとてもいい感じです。
さて、consumer_keyとかはすべて、dev.twitter.comからいただいているので、早速書いてみます
Twitter apiへアクセスするプログラムを書いてみる
ホリエモンのツイッターをサンプルに、ユーザー情報をとってみよう。。。
だいたいこんな感じでいけるらしい
import requests_oauthlib
consumer_key = "############";
consumer_secret = "############";
access_token = '############-############';
access_token_secret ='############';
twi=requests_oauthlib.OAuth1Session(consumer_key, consumer_secret, access_token, access_token_secret)
api='https://api.twitter.com/1.1/users/show.json'
option={'screen_name':'takapon_jp'}
res=twi.get(api,params=option)
print(res.text)
///実行結果
///jsonがずらずらと表示される
いけるやん!PHPより正直簡単だった。Twitteroauthみたいなファイルを探させられて、見つかったら見つかったで実装したらアブラハムのクラスがどうの〜って言われたPHPに比べてとても楽!
ん?前回出てきた requestsを使ってないね。。。OAuth1Session でアクセスしてるような。。
requestsを使って実行してみる
今度は、間違いなくrequests自体を使ってみる
import requests_oauthlib
import requests
oauth=requests_oauthlib.OAuth1(
'######',
'######',
'######-######',
'######'
)
api='https://api.twitter.com/1.1/users/show.json?screen_name=takapon_jp'
res=requests.get(api,auth=oauth)
print(res.text)
//実行するとjsonが表示される
うーん、こっちの方が短くてシンプルな気がしますが、optionの部分、つまりパラメータ設定のところをurlに直接入れ込んだんですよね。これじゃ使いづらいな。
調べてみると。。。urllib ってものがあるらしい。ひとまず、後ろのパラメータの作成テストをしてみる
import urllib.parse
query_data={'screen_name':'takapon_jp','count':10}
query_str=urllib.parse.urlencode(query_data)
print(query_str)
///実行結果
screen_name=takapon_jp&count=10
ほう。。。。あとは?と結合すれば完成なわけですね。。了解