前回(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

ほう。。。。あとは?と結合すれば完成なわけですね。。了解

コメント