4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OctoparseAdvent Calendar 2019

Day 1

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

Last updated at Posted at 2019-10-15

元記事:https://www.octoparse.jp/blog/web-scraping-using-python-vs-web-scraping-tool/

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の利用申請.png

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

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

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

キーとトークンを入れる1.png

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

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

キーとトークンを入れる2.png

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

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

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

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

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

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

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

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

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

#まとめ
上記のデモに基づいて、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は専門家に大きな柔軟性を提供できます。自身の状況によって適切な方法を選びましょう。

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?