Python vs Octoparse!初心者向きのTwitterのスクレイピング方法はどっち?

Webスクレイピングは、Webサイトからデータを収集するために広く使用される手法になりました。人々は、Webスクレイピングを行うためにさまざまな方法を利用しています。一般的に、これらはコーディングツール導入の2派に分かれています。この記事では、これら2つの方法を使用してTwitterをスクレイピングしてみます。

 

PythonでTwitterをスクレイピングする

PythonでTwitterをスクレイピングするには、まずこのリンクからTwitter APIの利用申請が必要となります。APIを申請すると、API key、API secret key、Access token、Access token secretの4行のコードを取得できます。

twitter-apiの利用申請

APIの準備ができたので、Twitterクローラーを作成し始めます。クローラーを構築するには、jsontweepyの2つのライブラリを使います。JSONとは、構造化されたデータを表現するための記法です。Tweepyは、Twitter APIにアクセスするためのパッケージです。 

tweepy

 

Streamは、ツイートの実行と抽出に役立ちます。OAuthHandlerは、キーとトークンをTwitterに送信するのに役立ちます。StreamListenerは、各ツイートから必要なフィールドを変更するのに役立ちます。

次に、取得したTwitterで発行したキーとトークンを入れます。

キーとトークンを入れる

ここでは、StreamListenerを継承するクラスを作成して、Twitterから取得するフィールドの種類を変更します。 ツイート、位置、ユーザー名、ユーザーID、フォロワー数、いいね、タイムゾーンなどの情報を収集できます。ツイート、ユーザー名、タイムゾーンなどの一部の情報には、他の言語の単語で表示する可能性があります。したがって、デフォルトのUnicode文字コードではなく、UTF-8などの別の文字コードの使用を検討する必要があります。

取得するフィールド

それから、OAuthHandlerを使用して、前回同様、キーとトークンを入れます。

キーとトークンを入れる

それで、keywordsにます。ここでは「Big data」に関連するすべてのツイートを検索し、Streamで抽出を開始します。

検索ワードを入れ抽出する

各行のデータは、1つのツイートからの情報です。異なるフィールドは、2つのセミコロン「;」で区切られています。最初のフィールドはユーザー名、2番目のフィールドは位置、最後のフィールドはツイートです。データをスプレッドシートに書き込み、区切り文字を「;;」に設定してフィールドを区切ることができます。または、pandas、numpy、reなどの他のライブラリを適用して、データをさらに処理することもできます。

 

OctoparseでTwitterをスクレイピングする

Pythonでのスクレイピングとは異なり、APIの申請から始める必要はありません。検索キーワードをOctoparseに入力するだけで済みます。Octoparseのソフトには数十種類のあらかじめ作成されたテンプレートがあり、パラメータ(WebサイトのURL、検索キーワードなど)を入力するだけで、データが抽出されてきます。

  • ホーム画面から「タスクテンプレート」の下にある「 +タスク」を選択します。

タスクテンプレート

  • Twitterのテンプレートを選択し、「今すぐ使う」をクリックします。

Twitterのテンプレート

  • 検索キーワードを入力し、テンプレートを保存して実行します。

キーワードを入力する

下記は抽出されたデータのサンプルです。

データサンプル 

 

 

上記のデモに基づいて、PythonによるコーディングとOctoparseのようなツールの長所と短所をまとめます。

1.学習コスト:Octoparseより、Pythonのほうは学習コストが明らかに高いです。Pythonでクローラーを構築するには、さまざまなライブラリとコーディング手法に精通しているだけでなく、Web構造を十分に理解し、スクレイピング防止手法を認識する必要があります。その一方、Octoparseでは、開発者はすでにそれらの状況を考慮しており、ユーザーは数回クリックするだけですべてのデータを抽出できます。

 

2.迅速な構築:上記のデモから見ると、どちらの方法も簡単で使いやすいようです。ただし、最も時間のかかるプロセスはクローラーの構築ではなく、Webサイトへの初期分析です。異なるWebサイトは、異なる開発方法とスクレイピング防止技術を適用します。コーディングしてデータを取得することを選択した場合、Webサイトを分析するためにより多くの時間が必要になります。その一方、Octoparseの場合、Webサイトを分析しなくてもデータを簡単に入手できます。

 

3.柔軟性:PythonはOctoparseよりも優れた柔軟性を備えています。一部のコードを変更するだけで、クローラーの動作を操作できます。また、いくつかの強力なライブラリまたはAPIをインポートして、数行のコードでデータを取得することもできます。CaptchaやreCaptchaなど、最も難しいアンチスクレイピングテクニックの一部でさえ、Pythonを使用した深層学習方法で解決できる可能性があります。

 

正直に言うと、PythonとOctoparseにはそれぞれ長所があります。Octoparseはコーディングスキルのない人に適していますが、Pythonは専門家に大きな柔軟性を提供できます。自身の状況によって適切な方法を選びましょう。

 

 

関連記事:

疑問に答えます!なぜWebスクレイピングを学ぶのか?

PythonによるWebスクレイピングを解説

Webスクレイピングを簡単にする

ゼロからWebクローラーを構築する方法