PythonでTwitterデータをスクレイピングする[2つのAPIを使用]
公開: 2020-11-30目次
序章
Twitterのようなソーシャルメディアプラットフォームは、データセットを収集するための優れたリポジトリの1つです。 新しいデータサイエンスプロジェクトに取り組むにはかなりの量のデータが必要であり、データセットの収集は簡単な作業ではありません。
また、Twitterは、さまざまな考え方や感情を持つ人々からのツイートのコレクションであるため、多様なジャンルのデータを提供します。 バイアスのないこの種のデータセットは、新しい機械学習モデルをトレーニングするために非常に必要な前提条件です。
始めましょう!
Twitterデータスクレイピング用の2つのAPIについて説明します。
- Tweepy
- Twint
Tweepy
Tweepy APIを使用してデータをスクレイピングするためのPythonコードの説明を始める前に、Twitter開発者アカウントのクレデンシャルが必要であることを知っておく必要があります。既に持っている場合は簡単です。
開発者アカウントをお持ちでない方は、こちらからお申し込みいただけます。 また、開発者アカウントを申請する前に、Twitterアカウントを持っている必要があります。 開発者アカウントの申請は簡単なプロセスであり、申請は申請の理由などのいくつかの基本的な質問をします。開発者アカウントの承認には通常2〜3日かかります。
開発者アカウントの承認を受け取ったら、「キーとトークン」セクションからコンシューマーAPIキー、アクセストークン、およびアクセストークンシークレットをメモします。
また、1週間以内のツイートしかスクレイプできないなど、tweepyにはいくつかの制約があることに注意してください。 そして、スクレイピングの制限、15分の時間枠で最大18000ツイート。
これで、開発者アカウントからキーとトークンを取得したので、それらを承認しましょう。
Consumer_key = "あなたの消費者キー" Consumer_secret = "あなたの消費者の秘密" access_token = “アクセストークン“ access_token_secret = "あなたのトークンシークレット" 承認= tweepy.OAuthHandler(consumer_key、consumer_secret) authentication.set_access_token(access_token、access_token_secret) api = tweepy.API(authorization、wait_on_rate_limit = True ) |
クレデンシャルで承認したので、特定のアカウントのツイートをスクレイプしましょう。 とりあえず、サンダー・ピチャイさんのつぶやきをかき集めましょう。
ユーザー名= 'サンダーピチャイ' カウント= 100 試してみてください: #ライン1 tweets_obj = tweepy.Cursor(api.user_timeline、id = username).items(count) #2行目 tweets_list = [[tweet.created_at、tweet.id、tweet.text] for tweet intweets_obj ] #line3 tweets_df = pd.DataFrame(tweets_list) eとしてのBaseExceptionを除く: print ( '何かがうまくいかなかった、 ' 、 str (e)) |
上記のスニペットでは、line1はすべてのツイートを含む反復可能なオブジェクトを作成し、変数「tweets_obj」に割り当てられています。 反復可能なオブジェクトの作成が完了したら、それを反復処理してすべてのデータを抽出しましょう。
「created_at」、「id」、「text」などのいくつかの属性のみを抽出し、それらを2D配列の各エントリに追加しています。 各エントリには、スクレイプした各ツイートのすべてのデータが含まれています。 各エントリとして属性を持つ2D配列ができたので、「pd.DataFrame()」構文を使用してデータフレームに変換できます。
配列をデータフレームに変換する理由は、柔軟性が高く、事前定義されたメソッドが利用可能であり、アクセスが容易なため、データサイエンスプロジェクトのすべてのデータ構造から際立っています。
同様に、特定のテキストクエリを持つデータをスクレイピングするためのコードを見ていきましょう。
text_query = 'ローカルのボーカル' カウント= 100 試してみてください: #ライン1 tweets_obj = tweepy.Cursor(api.search、q = text_query).items(count) #2行目 tweets_list = [[tweet.created_at、tweet.id、tweet.text] for tweet intweets_obj ] #line3 df = pd.DataFrame(tweets_list) eとしてのBaseExceptionを除く: print ( '何かがうまくいかなかった、 ' 、 str (e)) |
上記のスニペットでは、すべてが前のスニペットと同じです。 最後に、「vocalforlocal」というテキストクエリを含むすべてのツイートを含むデータフレームを作成しました。
リツイート数やお気に入り数などの属性を追加するなど、より具体的またはカスタマイズされたデータスクレイピングを探している場合は、構文をカスタマイズして、tweepyが提供する他の属性を抽出できます。 tweepyが提供する他の属性の詳細については、ドキュメントを参照してください。
Twint
Twint APIは開発者アカウントのクレデンシャルを必要としないため、認証キーがなくてもツイートを簡単に取得できます。 また、twintには、ツイートの数、時間枠、スクレイピング制限などの制限はありません。Twintは、シームレスなデータスクレイピングと使いやすいAPIを提供します。

twint APIのユーザー名を使用して、ある人のフォロワーのリストを印刷できます。
t_obj = twint.Config() t_obj.Username = “ sundarpichai “ twint.run.Followers(t_obj) |
上記のスニペットでは、twint.Config()がtwint APIを構成し、作業を開始します。 そして、オブジェクトを割り当てた後、その参照を作業に使用できます。「t_obj.Username」は、入力したユーザー名を割り当てます。 そして、twint.run.Followersは、そのユーザー名のすべてのフォロワーの検索を実行します。
スクレイピングされたデータを、tweepyAPIと同様のデータフレームに保存することもできます。
t_obj.Limit = 100 t_obj.Username = “ sundarpichai “ t_obj.Pandas = True twint.run.Followers(t_obj) result_df = twint.storage.panda.User_df |
スニペットのすべてが前のスニペットとほぼ同じですが、スクレイピングされたデータをデータフレームに変換する構文「twint.storage.panda.User_df」の行が追加されています。 結果のデータフレームは、指定されたユーザー名のフォロワーのリストで構成されます。
特定のユーザー名のフォロワーデータをスクレイピングするのを見たので、特定のアカウントのツイートをスクレイピングするためのコードを見ていきましょう。
t_obj.Search = “ from:@sundarpichai “ t_obj.Store_object = True t_obj.Limit = 20 twint.run.Search(t_obj) ツイート= t.search_tweet_list 印刷(ツイート) |
上記のスニペットでは、特定の人物のツイートを検索するように構成されたオブジェクトを作成しています。構文「t_obj.Limit」を使用して、スクレイピング中にツイートの制限を設定することもできます。 検索を実行すると、すべてのツイートのリストが作成され、必要に応じてローカル変数に割り当てることができます。
特定のアカウントのスクレイピング情報のスニペットを見た後、特定のキーワードを含むツイートをスクレイピングする方法について簡単な質問があるかもしれません。 問題ではありませんtwintにはこれに対する解決策があります。
t_obj.Search = "データサイエンス" t_obj.Store_object = True t_obj.Limit = 100 twint.run.Search(t_obj) ツイート= t.search_tweet_list 印刷(ツイート) |
上記のスニペットは、特定のアカウントからツイートをスクレイピングするためのスニペットと同じですが、line1に1つの違いがあります。 都合に合わせてデータフレームに変換することもできます。
twint APIの詳細については、リポジトリとドキュメントをご覧ください。
結論
データをスクレイピングすることの重要性を理解しました。 Twitterデータをスクレイピングするための2つのAPIとその機能について説明しました。 スクレイピングされたデータを必要なファイル形式に変換するためのいくつかの方法を確認しました。 これらのAPIに気付いたので、データサイエンスプロジェクトのデータのスクレイピングを開始してください。
私たちupGradは喜んでお手伝いします。また、Pythonを学ぶことで得られる機会についてもお知らせします。 Pythonは、最も人気のある新しいテクノロジーの2つである機械学習とデータサイエンスに広く使用されています。 Pythonを学び、これらのスキルの知識を持っていると、自分の分野で優れた能力を発揮し、より良いキャリアの機会を得ることができます。
この分野で卓越するために必要なすべてのスキルを提供するために、業界の専門家や一流の学術機関と一緒に開発された多くのコースがあります。 Pythonの知識を活用し、キャリアの見通しを高めるのに役立つコースのいくつか:
データサイエンス:
IIIT-Bで開発されたupGradのオンラインデータサイエンスプログラムをチェックしてください。これは、この分野に参入し、あなたの知識で業界でマークを付けるための本格的なデータサイエンスコースです。
データサイエンスの科学の修士号:リバプールジョンムーア大学とIIIT-Bと共同で開発され、世界のトップ大学の1つからデータサイエンスの修士号を取得しました。
機械学習:
機械学習とAIの事前認定:インドで最高の教育機関の1つであるIIT madrasは、upGradと提携して、個人がこのコースで機械学習の完全な知識を持つための機械学習に関する高度なコースを作成しました。
機械学習とAIの科学のマスター:リバプールジョンムーア大学とIIIT-Bは、upGradと提携して、個人がテクノロジーを詳細に学び、このテクノロジーの正式な学位を取得して成功を収めるための科学の学位の完全なマスターを提供しています。このフィールドのパス。
機械学習とAIのPGディプロマ:IIIT-BとupGradが協力して、個人が機械学習とAIに関する12か月のコースを受講し、このコースでこのテクノロジーに参加する機会を得るのを支援しました。
データのスクレイピングとは何ですか?
データスクレイピングとは、コンピュータソフトウェアが別のプログラムによって作成された出力からデータをスクレイピングするプロセスを指します。 Webスクレイピングは、さまざまなWebサイトからデータまたは情報を収集するために使用されるデータスクレイピングの一種です。 Webスクレイピングでは、アプリケーションを使用してWebサイトから貴重な情報を収集します。 Webスクレイピングプログラムは、HTML(Hypertext Transfer Protocol)またはWebブラウザを使用してWWW(World Wide Web)にすばやく簡単にアクセスできます。
Twitterでデータスクレイピングが必要なのはなぜですか?
ソーシャルメディアでのデータスクレイピングは、プラットフォームで利用可能なデータの追跡、評価、および精査に役立ちます。 Twitterは最も人気のあるプラットフォームであり、Twitterデータをスクレイピングすることで、ユーザーはユーザーの行動、競争戦略、感情分析を分析し、世界で最も人気のあるソーシャルチャネルで起こっていることを、人々、仲間、企業のツイートから把握することができます。あなたにとって重要です。 Twitterデータスクレイピングサービスは、エンドツーエンドのニーズを最短時間で処理し、必要なデータを提供します。 たとえば、Twitterでは、クローラーがAPIを介してデータを収集し、ユーザーとそのアクティビティに関する情報の量を制限することしかできません。
APIとは何ですか?
アプリケーションプログラミングインターフェイスは、デジタルデバイス、ソフトウェアプログラム、およびデータサーバーが相互に通信できるようにする小さなコードであり、現在依存している多くのサービスの重要なバックボーンです。 APIは、コンピューターを人間に接続するユーザーインターフェイスとは対照的に、コンピューターまたはソフトウェアを相互に接続します。 これは、ソフトウェアに組み込んだコンピュータープログラマー以外の人(エンドユーザー)が直接使用するようには設計されていません。 APIは、プログラマーにとってツールまたはサービスとして機能する多くのコンポーネントで構成されることがよくあります。