[論文レビュー] A Web Scraping Methodology for Bypassing Twitter API Restrictions
著者らは、Scrapyベースのウェブスクレイピング手法を用いて、API制限を超えた歴史的Twitterデータを収集する方法を提案しており、Django UIとScrapydデーモン化によるスケーラブルなクロールを実現する。
Retrieving information from social networks is the first and primordial step many data analysis fields such as Natural Language Processing, Sentiment Analysis and Machine Learning. Important data science tasks relay on historical data gathering for further predictive results. Most of the recent works use Twitter API, a public platform for collecting public streams of information, which allows querying chronological tweets for no more than three weeks old. In this paper, we present a new methodology for collecting historical tweets within any date range using web scraping techniques bypassing for Twitter API restrictions.
研究の動機と目的
- NLP、機械学習、感情分析のためにAPI制約を超えた歴史的Twitterデータの必要性を動機づける。
- Twitter Searchエンドポイントを活用して、拡張日付範囲にわたって大量のツイートを収集するウェブスクレイピング手法を提案する。
- デーモン化されたGUIを備え、クロールを起動・監視できるデプロイ可能なシステムを示す。
提案手法
- カスタムHTTPヘッダを用いてTwitter Searchエンドポイントを利用し、高度なクエリを構築する。
- HTMLペイロードからツイートを抽出し、ツイートフィールドを解析するScrapyベースのクローラーを実装する。
- 初期検索エンドポイントと、古い結果を取得するセカンダリのタイムラインエンドポイント(maximum-position経由)という2つのエンドポイント戦略を用いる。
- maximum-position値を用いた反復的なページネーションで、複数ラウンドのツイートを取得する。
- Scrapyパイプラインを通じて取得ツイートをリレーショナルまたはノンリレーショナルデータベースに格納する、デーモン化されたスケジュールクロール用のコマンドラインインターフェースとDjango GUIを提供する。
- 取得ツイートをデータベースへ格納する際、Scrapyパイプラインを使用する。
実験結果
リサーチクエスチョン
- RQ1公開検索エンドポイントのウェブスクレイピングを用いて、標準の3週間の期間を超えて歴史的ツイートを取得できるか。
- RQ2拡張された日付範囲にわたるペジネーションを伴うツイートの収集と処理を、Scrapyベースのパイプラインはどの程度効果的に行えるか。
- RQ3合計ツイート数、所要時間、到達範囲の観点で、Twitter APIとウェブスクレイピング手法のパフォーマンスのトレードオフはどのようか。
- RQ4GUIとデーモン化アーキテクチャは、大規模で再現性のあるツイートデータ収集をどれほど容易にするか。
主な発見
- Twitter Scrapyは同一期間内でTwitter API Streamの46,000件を超える48,929ツイートを取得し、総所要時間を1800秒から1893秒へ短縮した(表3の値を参照)。
- Twitter Scrapy(リツイートとメンションを除外)は48,601ツイートを1,021秒で取得したのに対し、API Search(リツイートとメンションを除外)は47,582ツイートを2,109秒で取得した。
- 2017-10-09から2017-10-19の範囲では、Twitter API Searchは29,895ツイート、Twitter Scrapyは64,531ツイートをそれぞれ取得した。
- この手法は、初期結果を越える古いツイートへアクセスするために、2つのエンドポイントとmaximum-positionベースのページネーションを使用する。
- Django GUIとScrapydデーモンは、EC2環境でのスクレイピングタスクのスケジューリング、監視、デプロイを可能にする。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。