前書き

Twitterbotは、Twitterプラットフォームと統合し、他のユーザーを自動的に投稿、リツイート、好み、またはフォローするプログラムです。 Twitterbotは、興味深い情報や更新を提供することで有用であることが証明できます。また、楽しくてユーモラスでもあります。

嫌がらせやスパムはOKではないだけでなく、Twitterの利用規約に違反してTwitterbotのアカウントが停止されるため、Twitterbotを作成する際には注意が必要です。 Twitterbotを作成する前に、Twitterのhttps://support.twitter.com/articles/76915# [自動化ルールとベストプラクティス]に精通して、TwitterbotがTwitterコミュニティの良いメンバーであることを確認する必要があります。

このチュートリアルでは、2つのTwitterbotプログラムについて説明します。1つはhttps://www.digitalocean.com/community/tutorials/how-to-create-a-twitterbot-with-python-3-and-the-tweepy-library#です。 twitterbot-that-tweets-from-a-file [ファイルからツイート]、およびhttps://www.digitalocean.com/community/tutorials/how-to-create-a-twitterbot-with-python-3 -and-the-tweepy-library#twitterbot-that-retweets、-follows、-and-favorites [retweets、follows、favourites]。 さらに、https://www.digitalocean.com/community/tutorials/how-to-create-a-twitterbot-with-python-3-and-the-tweepy-library#storing-credentials [storing資格情報]を別のプログラムファイルに保存し、https://www.digitalocean.com/community/tutorials/how-to-create-a-twitterbot-with-python-3-and-the-tweepy-library#keeping- the-twitterbot-running [サーバーで実行中のTwitterbotを維持する]。 これらの各手順はオプションですが、実行する順序で表示されます。

前提条件

ローカルコンピューターを使用してTwitterbotをセットアップして実行できますが、継続的に実行したい場合は、https://www.digitalocean.com/community/tutorials/how-to-install-python-3- and-up-up-a-programming-environment-on-an-ubuntu-16-04-server [サーバー上のPythonプログラミング環境]は、このプロジェクトに最適です。

さらに、有効な電話番号に関連付けられたhttps://twitter.com [Twitter]アカウントが必要です。このアカウントは、の* https://twitter.com/settings/devices [Mobile] セクションで追加できますログイン時の*設定 Twitterアプリを作成し、Python Tweepyライブラリをインストールする必要があります。これは、https://www.digitalocean.com/community/tutorials/how-to-create-a-twitter-app [ Twitterアプリの作成方法]チュートリアル。 このチュートリアルを開始する前に、コンシューマキー、コンシューマシークレット、アクセストークン、およびアクセストークンシークレットを用意しておく必要があります。

このプロジェクトの一環として、Pythonを使用してファイルを読み取ります。 Pythonでのテキストファイルの操作に慣れるには、「https://www.digitalocean.com/community/tutorials/how-to-handle-plain-text-files-in-python-3[How To Python 3でプレーンテキストファイルを処理する]ガイド。

資格情報の保存

Twitterコンシューマキー、コンシューマシークレット、アクセストークン、およびアクセストークンシークレットをプログラムファイルの先頭に保持できますが、ベストプラクティスのために、これらをメインプログラムファイルがアクセスできる別のPythonファイルに保存する必要があります。 これらのhttps://www.digitalocean.com/community/tutorial_series/working-with-strings-in-python-3[strings]にアクセスできる人は誰でもTwitterアカウントを使用できるため、これらを共有したり、それらを公開します。 セキュリティに加えて、個別のファイルを保持することにより、作成する各プログラムファイルの資格情報に簡単にアクセスできます。

まず、Tweepyライブラリがインストールされた仮想環境にいることを確認する必要があります。 環境がアクティブになったら、プロジェクトのディレクトリを作成して整理します。

mkdir twitterbot
cd twitterbot

次に、nanoなどのテキストエディターを開き、これらの資格情報を保存するためのファイル「+ credentials.py +」を作成します。

nano credentials.py

生成したキー、シークレット、トークンごとにhttps://www.digitalocean.com/community/tutorials/how-to-use-variables-in-python-3[variables]を作成します(必要な場合)それらを生成するには、https://www.digitalocean.com/community/tutorials/how-to-create-a-twitter-app#step-2-%E2%80%94-modify-your-application%E2%80に従ってください%99sアクセス許可レベルおよびアクセストークンの生成[これらの手順]。 一重引用符で囲まれたアイテムを、TwitterアプリWebサイトの一意の文字列に置き換えます(一重引用符を保持します)。

credentials.py

consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''

他のプログラムファイルでこれらの変数を呼び出します。 この別個の + credentials.py`ファイルを作成すると、Gitを介してコードをリリースする予定がある場合に、 + .gitignore`ファイルに追加することもできます。

ファイルからツイートするTwitterbot

Pythonの機能を使用してファイルを処理および読み取り、Twitterのステータスを更新できます。 この例では、既存のファイルを使用しますが、独自のファイルを作成するか、既存のファイルを変更することもできます。

プログラムファイルのセットアップ

nanoなどのテキストエディターを使用してプログラムファイルを作成することから始めましょう。

nano twitterbot_textfile.py

次に、ファイルの先頭に追加するか、https://www.digitalocean.com/communityで設定した `+ credentials.py +`ファイルに保存したものをインポートして、Twitterの認証情報を設定します。 / tutorials / how-to-create-a-twitterbot-with-python-3-and-the-tweepy-library#storing-credentials [上記のセクション]。 また、Tweepyライブラリを介してクレデンシャル変数とやり取りするための3行を追加します。

twitterbot_textfile.py

# Import our Twitter credentials from credentials.py
from credentials import *

# Access and authorize our Twitter credentials from credentials.py
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

この設定の詳細については、「https://www.digitalocean.com/community/tutorials/how-to-create-a-twitter-app#step-4-%E2%80」をご覧ください。 %94-create-a-python-application-that-interacts-with-twitter [Twitterアプリの作成方法]。OAuthの詳細については、https://www.digitalocean.com/community/を参照してください。 tutorials / an-introduction-to-oauth-2 [私たちの紹介]。

テキストファイルを取得する

このTwitterbotには、テキストファイルを読み込む必要があるため、無料の電子書籍(ほとんどがパブリックドメイン)を読者に提供するボランティアプロジェクトであるProject Gutenbergからテキストファイルをダウンロードしましょう。 Jules Verneによる_http://www.gutenberg.org/ebooks/164 [海の下の2万のリーグ] _の英語の翻訳を、 `+ curl `付きの ` verne.txt +`というファイルとして保存しましょう。

curl http://www.gutenberg.org/cache/epub/164/pg164.txt --output verne.txt

Pythonのファイル処理機能を使用します。最初にhttps://www.digitalocean.com/community/tutorials/how-to-handle-plain-text-files-in-python-3#step-2-%E2を使用します。 %80%94-opening-a-file [ファイルを開く]、https://www.digitalocean.com/community/tutorials/how-to-handle-plain-text-files-in-python-3# step-3-%E2%80%94-reading-a-file [ファイルから行を読み取る]、最後にhttps://www.digitalocean.com/community/tutorials/how-to-handle-plain-text -files-in-python-3#step-5-%E2%80%94-closing-a-file [ファイルを閉じる]。

Pythonでファイルを開いて読む

ファイルをダウンロードしたら、資格情報を処理するために設定した行の下に変数を作成し、関連する関数を追加できます。

twitterbot_textfile.py

from credentials import *

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

# Open text file verne.txt (or your chosen file) for reading


# Read lines one by one from my_file and assign to file_lines variable


# Close file

この設定により、コードを追加して、これらの行をTwitterアカウントのステータスの更新として出力できるようになりました。

テキストファイルからの行のツイート

ファイル行を変数に保存したら、Twitterボットアカウントを更新する準備が整いました。

Tweepyライブラリを使用してTwitter APIとやり取りするため、https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3 [ライブラリをインポート]する必要があります私たちのプログラムに。

また、時間ベースの方法でツイートを自動化するため、モジュール「+ time 」をインポートする必要があります。 ここでは、 ` sleep()+`関数のみを使用するため、その特定のメソッドのみをインポートします。

twitterbot_textfile.py

# Add all import statements at top of file


from credentials import *
...

Twitterアカウントのステータスの更新は、「+ file_lines 」変数に割り当てた「 verne.txt 」の行から取得されます。 これらの行は繰り返し処理する必要があるため、https://www.digitalocean.com/community/tutorials/how-to-construct-for-loops-in-python-3 [` for `を作成することから始めます。ループ]。 すべてが機能していることを確認するには、 ` print()+`関数を使用してこれらの行を出力します。

twitterbot_textfile.py

import tweepy
from time import sleep
from credentials import *

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

my_file=open('verne.txt','r')
file_lines=my_file.readlines()
my_file.close()

# Create a for loop to iterate over file_lines

この時点でコマンド「+ python twitter_textfile.py 」を使用してプログラムを実行すると、他のコードや停止の呼び出しがないため、ターミナルウィンドウに「 verne.txt +」ファイル全体が表示されます。

ターミナルウィンドウで出力を受け取るのではなく、すべての行が新しいツイートになるようにします。 これを実現するには、tweepy関数 `+ api.update_status()+`を使用する必要があります。 これは、認証済みユーザーのステータスを更新するために使用されますが、ステータスが1)重複していないか、2)140文字以下の場合にのみ更新されます。

その関数を追加して、 `+ line +`変数を渡します:

twitterbot_textfile.py

import tweepy
from time import sleep
from credentials import *

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

my_file=open('verne.txt','r')
file_lines=my_file.readlines()
my_file.close()

for line in file_lines:
   print(line)

これで、プログラムがアカウントに行をツイートするように設定されました。

例外処理とタイミングツイート

この時点で動作しているプログラムでは、コードを実行すると、最初の行が出力されます。 ただし、エラーが発生するまでにはそれほど時間はかかりません。

Output...
tweepy.error.TweepError: [{'code': 170, 'message': 'Missing required parameter: status.'}]

これは、ファイルの2行目が空白行であり、ステータスとして使用できないためです。 この問題に対処するため、空行でない場合にのみ行を印刷しましょう。 次のような `+ if`ステートメントを追加します。

if line != '\n':

Pythonでは、「+ \ n 」はhttps://www.digitalocean.com/community/tutorials/how-to-format-text-in-python-3#escape-characters [エスケープ文字]が空白行であるため、行が空白行と等しくない( `!= `)場合、 ` if +`ステートメントはプログラムに伝えます。 それ以外の場合、Pythonはその行を無視する必要があります。 以下の文脈で声明を見ていきます。

追加すべきもう1つのことは、これらのツイートがすべて一度に送信されないようにするための「+ sleep()」です。 関数 ` sleep()`は秒単位の時間単位で動作します。したがって、ツイート間で1時間が必要な場合は、1時間に3,600秒があるため、関数を ` sleep(3600)+`と記述する必要があります。

テスト目的で(テスト目的のみ)、代わりに5秒を使用します。 Twitterbotを定期的に実行したら、ツイート間の時間を大幅に増やしたいと思います。

`+ sleep(5)+`を追加する場所をいじることができます-下に配置した場所では、行が空白であっても遅延が発生するため、ツイート間にもう少し遅延が生じます。

twitterbot_textfile.py

import tweepy
from time import sleep
from credentials import *

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

my_file=open('verne.txt','r')
file_lines=my_file.readlines()
my_file.close()

for line in file_lines:
 print(line)

# Add if statement to ensure that blank lines are skipped

     api.update_status(line)

# Add an else statement with pass to conclude the conditional statement



# Add sleep method to space tweets by 5 seconds each

この時点でプログラムを実行すると(以前にプログラムを実行したことがない場合)、ファイルの最初の行の出力が端末で開始されます。 これらの行は、認証済みのTwitterアカウントにも投稿されます。

ただし、すでにプログラムを実行している場合は、次のエラーが表示される場合があります。

Outputtweepy.error.TweepError: [{'code': 187, 'message': 'Status is a duplicate.'}]

これを修正するには、Twitterアカウントから以前のツイートを削除するか、ファイル「+ verne.txt +」の最初の行を削除して保存します。

プログラムがステータス更新をTwitterアカウントに出力しないようにするには、キーボードの + CTRL +(または + control +)キーと `+ C +`キーを同時に押して、ターミナルウィンドウのプロセスを中断します。

この時点で、プログラムは実行できますが、ステータスが重複している場合に発生するエラーを処理しましょう。 そのために、「+ try」を追加します…​ except + `コードをブロックし、コンソールにエラーの理由を出力させます。

twitterbot_textfile.py

import tweepy
from time import sleep
from credentials import *

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

my_file=open('verne.txt','r')
file_lines=my_file.readlines()
my_file.close()

for line in file_lines:
# Add try ... except block to catch and output errors

       print(line)
       if line != '\n':
           api.update_status(line)
       else:
           pass


   sleep(5)

ここでプログラムを実行すると例外が処理されるため、プログラムを実行し続けることができます。 `+ sleep(5)`関数を ` sleep(900)+`に変更することで、ツイート間の時間を、たとえば15分に変更できます。

Twitterbotプログラムの改善

プログラムを改善し続けるために、これらのコードブロックの一部を関数として定義し、 `+ sleep()+`関数を追加してさまざまな状況を処理することを検討できます。

twitterbot_textfile.py

...
# Tweet a line every 15 minutes

   for line in file_lines:
       try:
            print(line)
            if line != '\n':
                api.update_status(line)

            else:
               pass
       except tweepy.TweepError as e:
           print(e.reason)

Pythonでファイルを操作し続けると、140文字のツイート制限に注意しながら、より理にかなった方法でファイルの行を分割する個別のスクリプトを作成できます。

この時点で、ソースファイルからツイートする完全に機能するTwitterbotができました。 次のセクションでは、リツイート、フォロー、お気に入りのTwitterbotについて説明します。 https://www.digitalocean.com/community/tutorials/how-to-create-a-twitterbot-with-python-3-and-the-tweepy-library#keeping-theのセクションにスキップすることもできます-twitterbot-running [Twitterbotの実行を維持する]。

リツイート、フォロー、お気に入りのTwitterbot

Tweepyライブラリを使用することで、他のユーザーのツイートをリツイートしたりお気に入りに追加したり、他のユーザーをフォローしたりできるTwitterbotをセットアップできます。 この例では、これらの動作は、ハッシュタグの形式で検索語をクエリすることに基づいています。

プログラムファイルのセットアップ

まず、 `+ twitterbot_retweet.py `というPythonファイルを作成しましょう。 ファイルの先頭に資格情報を追加するか、https://www.digitaloceanで作成した ` credentials.py +`ファイルを介してインポートステートメントと各キー、シークレット、トークンへのアクセスを追加する必要があります。上記の.com / community / tutorials / how-to-create-a-twitterbot-with-python-3-and-the-tweepy-library#storing-credentials [資格情報の保存]セクション。 また、Tweepyライブラリを介してクレデンシャル変数とやり取りするための3行を追加します。

twitterbot_retweet.py

# Import Tweepy, sleep, credentials.py
import tweepy
from time import sleep
from credentials import *

# Access and authorize our Twitter credentials from credentials.py
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

この設定の詳細については、「https://www.digitalocean.com/community/tutorials/how-to-create-a-twitter-app#step-4-%E2%80」をご覧ください。 %94-create-a-python-application-that-interacts-with-twitter [Twitterアプリの作成方法]。OAuthの詳細については、https://www.digitalocean.com/community/を参照してください。 tutorials / an-introduction-to-oauth-2 [私たちの紹介]。

クエリに基づいてツイートを見つける

次に、ツイートを反復処理できるforループを作成します。 ハッシュタグ#oceanを含むツイートを確認するため、パラメーターの一部としてそのクエリを実行するために `+ q = ‘#ocean’ +`を使用します。 まず、#oceanハッシュタグを使用するツイートに関連付けられたユーザー名を端末に出力させ、出力が長時間継続しないように、返されるアイテム(またはツイート)の数を10に制限します。

# For loop to iterate over tweets with #ocean, limit to 10
for tweet in tweepy.Cursor(api.search,q='#ocean').items(10):

# Print out usernames of the last 10 people to use #ocean
   print('Tweet by: @' + tweet.user.screen_name)

forループに追加できる追加のパラメーターは次のとおりです。

  • + since`と + until`を使用した日付範囲(ただし、APIの制限により、ツイートは前の週より前でなければならないことに注意してください)

  • 緯度、経度、およびその場所の周囲の特定の半径をキロメートル単位で取得する「ジオコード」

  • 「+ lang +」を使用して特定の言語を指定し、指定する言語の2文字https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes[ISO 639-1コード]に設定します

この特定のシナリオは*実際には結果を生成しません*、#oceanのクエリを保持し、2日間の時間枠を指定してツイートを取得し、シンガポール周辺100 kmに位置を制限し、フランス語のツイートを要求します。 試してみるには、各文字列を交換して、意味のある結果を得る必要があります。

for tweet in tweepy.Cursor(api.search,
                          q='',
                          since='',
                          until='',
                          geocode='1.3552217,103.8231561,100km',
                          lang='fr').items(10):
   print('Tweet by: @' + tweet.user.screen_name)

この関数や他のTweepy関数を介して渡すことができるさまざまなパラメーターの詳細については、http://docs.tweepy.org/en/v3.5.0/api.html [Tweepy API Reference]を参照してください。

このサンプルプログラムでは、#oceanクエリを検索しています。 `+ .items()+`メソッドは開いたままにしておくことができますが、リクエストが多すぎてリソースを使い果たしたために次のエラーが表示される場合があります。

Outputtweepy.error.TweepError: Twitter error response: status code = 429

すべてのエラーコードと応答は、https://dev.twitter.com/overview/api/response-codes [Tweepy API]から入手できます。

例外処理

関連付けられたTwitterユーザー名を単に印刷するのではなく、コードを改善するために、 `+ try …​ except + `ブロック。 また、forループを壊す `+ StopIteration +`例外を追加します。

twitterbot_retweet.py

import tweepy
from time import sleep
from credentials import *

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

for tweet in tweepy.Cursor(api.search, q='#ocean').items():

      print('Tweet by: @' + tweet.user.screen_name)

これで、収集するデータに基づいていくつかのアクションを実行するようTwitterbotに指示を開始できます。

リツイート、お気に入り、フォロー

まず、 `+ .retweet()`関数を使用してTwitterbotにツイートをリツイートさせます。 また、端末にフィードバックを提供し、「 \ n +」改行を追加して、この出力をもう少し良く整理します。

twitter_retweet.py

import tweepy
from time import sleep
from credentials import *

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

for tweet in tweepy.Cursor(api.search, q='#ocean').items():
   try:
       # Add \n escape character to print() to organize tweets
       print('Tweet by: @' + tweet.user.screen_name)

       # Retweet tweets as they are found





   except tweepy.TweepError as e:
       print(e.reason)

   except StopIteration:
       break

プログラムの実行中に、ブラウザーを開いてこれらのリツイートがTwitterbotアカウントに投稿されていることを確認する必要があります。 あなたのアカウントはリツイートによって埋められ始め、次のようになります:

image:https://assets.digitalocean.com/articles/eng_python/Twitterbot/TwitterbotRetweet.png [リツイートを表示するTwitterアカウント]

プログラムを数回実行すると、Twitterbotが同じツイートを再度検出していることがわかりますが、 `+ tweepy.TweepError +`例外処理のため、Twitterbotはこれらをリツイートせず、代わりに次の出力を提供します。

Output[{'message': 'You have already retweeted this tweet.', 'code': 327}]

Twitterbotに見つかったツイートをお気に入りに追加し、ツイートを作成したユーザーをフォローする機能を追加できます。 これは、リツイートの形式と同様の構文とスタイルで行われます。

twitterbot_retweet.py

import tweepy
from time import sleep
from credentials import *

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

for tweet in tweepy.Cursor(api.search, q='#ocean').items():
   try:
       print('\nTweet by: @' + tweet.user.screen_name)

       tweet.retweet()
       print('Retweeted the tweet')

       # Favorite the tweet



       # Follow the user who tweeted



       sleep(5)

   except tweepy.TweepError as e:
       print(e.reason)

   except StopIteration:
       break

Tweepyのエラー処理は、既にフォローされているユーザーをフォローしていないことに気付くかもしれません。そのため、 `+ .user.follow()`関数の前に ` if +`ステートメントを導入できます。

...

           # Don't forget to indent
           tweet.user.follow()
           print('Followed the user')
...

引き続きこのコードを好みに合わせて変更し、さまざまな状況に対処するためのより多くの方法を導入できます。

次に、このTwitterbotをサーバー上で実行し続ける方法について説明します。

Twitterbotを実行し続ける

Twitterbotは継続的かつ自動化されたタスクを実行するため、コンピューターがスリープ状態または電源が切れている場合でもプログラムを実行し続けることができます。 サーバーを使用すると、必要な限りプログラムを実行し続けることができます。

この例では、 `+ twitter_retweet.py `ファイルを使用しますが、 ` twitterbot_textfile.py +`ファイルまたは作成した他のTwitterbotファイルを使用することもできます。 関連するすべてのファイルがサーバーの同じディレクトリで使用可能であることを確認してください。

Twitterbotプログラムを実行し続けるために、ハングアップ(HUP)シグナルを無視する `+ nohup `コマンドを使用します。 ` nohup `を使用すると、通常はターミナルウィンドウに表示される出力が、代わりに ` nohup.out +`というファイルに出力されます。

TweepyライブラリにアクセスできるPython環境、およびPythonプログラムファイルが存在するディレクトリにいることを確認し、次のコマンドを入力します。

nohup python  &

括弧内の数字(これが開始する最初のプロセスである場合は + [1] +)と数字の文字列で出力を受け取る必要があります。

Output[1]

この時点で、アカウントのTwitterページを確認して、Twitterbotが実行されていることを確認します。 プログラムがあなたの `+ sleep()`関数に到達する前に、少なくとも1つの新しいツイートが投稿されるはずです。 新しいツイートがそこにない場合、nanoなどのテキストエディターで ` nohup.out +`ファイルを見ることができます:

nano nohup.out

エラーがあるかどうかを確認し、必要に応じてプログラムを変更し、プロセスを強制終了してから、 `+ nohup +`コマンドを再度実行し、Twitterアカウントで新しいツイートを確認します。

Twitterbotが実行されていることを確認したら、 `+ logout +`を使用してサーバーへの接続を閉じます。

logout

プロセスを監視せずに長時間実行し続けると、サーバーの容量によっては、 `+ nohup.out `がディスク容量を使い果たす可能性があります。 必要に応じて、または必要に応じて、サーバーに再度ログインし、 ` kill `コマンドを使用してTwitterbotを停止できます。 上記で生成された数字の文字列でこのコマンドを使用します。 この例では、「 kill 」を使用します。 あなたはもはやその番号を手元に持っていないかもしれないので、プロセスステータスに対して ` ps `コマンドを実行し、ターミナルに接続されていないすべてのプロセスを含めるために ` -x +`フラグを実行することで簡単に数字の文字列を取得できます:

ps -x

次のような出力が表示されます。

Output  PID TTY      STAT   TIME COMMAND
21658 ?        Ss     0:00 /lib/systemd/systemd --user
21660 ?        S      0:00 (sd-pam)

21764 ?        S      0:00 sshd: [email protected]/0
21765 pts/0    Ss     0:00 -bash
21782 pts/0    R+     0:00 ps xw

Pythonプログラムが実行されていることを確認する必要があります。この場合、そのIDは3行目にあります。 これでプロセスを停止できます。

kill 21725

コマンド `+ ps -x +`を再度実行すると、Python Twitterbotのプロセスは存在しなくなります。

結論

このチュートリアルでは、2つの異なるバージョンのTwitterbotをセットアップして実行し、Twitterソーシャルメディアプラットフォームと自動的に対話します。 開発者がTwitterを簡単に利用できるようにするために、Twitter APIやTweepyなどのライブラリでできることは他にもたくさんあります。

ここから、TweepyライブラリとTwitter APIをさらに深く掘り下げてリストを作成し、ユーザーをリストに追加し、ダイレクトメッセージに関与し、Twitterでストリーミングしてリアルタイムでツイートをダウンロードすることもできます。 上記で作成した2つのTwitterbotの機能を組み合わせることも検討してください。 インタラクティブなTwitterbotを作成することに加えて、Twitter APIを使用することで、大量のデータマイニングを行うこともできます。