見出し画像

『note 技術ブログ』で呟いている人一斉フォローしてみた

※全文公開、投げ銭方式

こんばんは。Shota(太鼓眼鏡)です。今回は技術ブログをnoteで初めて書いてみようと思います。テーマはPythonでTwitterのAPIが使えるTweepyです。普段は別に名乗らないのですが、さすがに今回は名前出しでいきます。

実は1年ほど前に【太鼓眼鏡】名義でいくつか技術記事は出していて、それのリライトになります。久しぶりに書いてみたらあまりにもわかりにくくて、「誰が書いた記事だよ!」とキレながら試したんですが、ぼくの記事でした。最後に一応載せておくので、興味あったら見てみてください。

今回の概要

ゴールは「Tweepyを使って、『note 技術ブログ』の検索に引っかかった人を20人フォローする」ことです。対象は、「Pythonの基礎が分かってる人」+「Pythonの開発環境構築は終わっている人」です。

今回対象とするのは、
 ・TwitterAPIを使うための準備
 ・Tweepyのインストール方法(ちょっとだけ)
 ・Tweepyで検索、フォローをするサンプルコードの紹介
の3つだけです。実際は「環境構築の方法」や「サンプルコードの開設」「OAuthとはなんぞや」「Tweepyでできること」など書いたほうがいいことは山積みですが、まずはスモールスタートということで、小さく始めています。それでは期待値調整はここまでにして、始めていきましょう。

1. まずTwitterのAPIを使うための準備をします

こちらにアクセスして、アプリ名や用途を記入します。電話番号を紐付けてない場合は、紐付けてから行ってください。

2. Keys and Access Tokenをクリックし、必要情報を控えてください

Your Access Token下のボタンを押してアクセストークンを取得します。

控える内容は「Consumer Key (API Key)」「Consumer Secret (API Secret)」「Access Token」「Access Token Secret」の4つです。

3. Tweepyをインストールします

今回はUbuntuでのインストールを一旦前提にします。ぼくはDockerで仮想環境作ってるので、それで対応してるんですが、作り方はまた別記事であげます。ひとまず黒い画面で下記を打ってください。

pip install tweepy


※※ここからいよいよコードを書いていきます※※

4. OAuthの設定を行う(Twitterの設定をする感じ)

まず適当にフォルダを作成しましょう(blog-bot-testなど)。その下に「oauth.py」というファイルを作成します。コードは下記コピペで。

# Tweepyライブラリをインポート
import tweepy

# 各種キーをセット
CONSUMER_KEY = 'xxxxxxxxxxxxxxxx'
CONSUMER_SECRET = 'xxxxxxxxxxxxxxxx'
ACCESS_TOKEN = 'xxxxxxxxxxxxxxxx'
ACCESS_SECRET = 'xxxxxxxxxxxxxxxx'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)

#APIインスタンスを作成
api = tweepy.API(auth)

「xxxxxxx」となっている箇所には、2で取得したキーを入力します。ちなみにこれ超注意ですが、上のキーは絶対外に漏らさないように気をつけてください。他の人がアクセスし放題になります。

5. Tweepyとつぶやいている人を10人一気にフォローする

今回はキーワードをつぶやいている人を10人くらい一気にフォローしてみたいと思います。まず「oauth.py」と同じフォルダに「run.py」を作成してください。現在フォルダの下には「oauth.py」と「run.py」の二つがある状態です。

それでは「run.py」に下記コードをコピペしてください。

import oauth
api = oauth.api

# 検索ワードをセット
keywords =["note", "技術ブログ"]
q = ' AND '.join(keywords)

# 検索数をセット
count = 10

# 検索実行(q=クエリ、count=検索数、lang=言語設定)
search_results = api.search(q=q, count=count, lang="ja"))

# 結果を順番にフォロー
for result in search_results:
    screen_id = result.user._json['screen_name']
    print(screen_id)
    try:
        api.create_friendship(screen_id)
    except:
        continue

上のコードでは2箇所でtweepyを使っています。

まず「#検索実行」の行を見てください。

# 検索実行(q=クエリ、count=検索数、lang=言語設定)
search_results = api.search(q=q, count=count, lang="ja"))

ここえはapi.search()で検索を行っています。色々と引数(検索条件みたいなもの)はとれるんですが、qが検索ワードなことだけ覚えておきましょう。また日本を対象にするのであればlangが便利です。

次に検索結果をフォローする際のこのコード。

api.create_friendship(screen_id)

tweepyでは、create_friendship()でフォローができます。引数はscreen_id(見えるID)です。他のも設定できますが、一旦今回はこれだけ覚えてください。

ではここまで書いたら保存をし、いよいよ実行します。

6. 実際にやってみた

今までの全てのファイルを保存し、黒い画面に下の呪文を打ち込みます。

python3 run.py

すると、実はコードの中にprint(screen_id)と書いてあるので、黒い画面に検索した結果該当したユーザさんのIDが続々と出てきます。この人たちをフォローしていってるわけです。

ちなみにこのコードでは、エラー処理をしています。というのも、twitterは当たり前ですが自分をフォローすることができません。なので、もし自分が検索対象に入っていた場合に、エラーで止まってしまうことを防いでいます。

try:
    api.create_friendship(screen_id)
except:
    continue

結果はこちら。実行前が333フォロー

実行後は、349フォローに増えていますね。

20人検索結果に出ていて、ぼく自身のIDもあったり、すでにフォローしている人もいたので全部で16人フォローをしたことになります。

こんな感じでTweepyを使えば、簡単にキーワードに引っかかった人のツイートをファボしたり、フォローしたり、逆にフォローを解除したりすることができます。また次回以降やっていきますが、もちろんツイートすることも可能です。

さて今回はTweepyを使ってキーワード検索⇒フォローをやってみるということで記事を書いてみました。実際書いてみると、前提条件がわかりづらく、これを見ただけでやれるような内容ではないと思います。また更新していきますので、ぜひ試してみてください。

ちなみに過去記事はこちら。あまりにもわかりにくくて結局参考サイトを調べました。

(51:45)

ここから先は

0字

¥ 100

この記事が気に入ったらサポートをしてみませんか?