snscrape はソーシャル ネットワーキング サービス (SNS) 用のスクレイパーです。ユーザープロフィール、ハッシュタグ、または検索などをスクレイピングし、発見されたアイテム (関連する投稿など) を返します。
現在、次のサービスがサポートされています。
snscrape には Python 3.8 以降が必要です。 Python パッケージの依存関係は、snscrape をインストールすると自動的にインストールされます。
依存関係の 1 つである lxml には、libxml2 および libxslt もインストールする必要があることに注意してください。
pip3 install snscrape
開発版を使用したい場合:
pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
snscrape の CLI の一般的な構文は次のとおりです。
snscrape [GLOBAL-OPTIONS] SCRAPER-NAME [SCRAPER-OPTIONS] [SCRAPER-ARGUMENTS...]
snscrape --help
およびsnscrape SCRAPER-NAME --help
オプションと引数の詳細を提供します。 snscrape --help
には、利用可能なすべてのスクレイパーもリストされます。
CLI のデフォルトの出力は、各結果の URL です。
いくつかの注目すべきグローバル オプションは次のとおりです。
--jsonl
JSONL として出力を取得します。これには、snscrape によって抽出されたすべての情報 (メッセージの内容、日時、画像など。詳細はスクレイパーによって異なります) が含まれます。--max-results NUMBER
すると、最初のNUMBER
結果のみが返されます。--with-entity
、スクレイピングされているエンティティ (ユーザーやチャネルなど) の項目を取得します。これはすべてのスクレーパーでサポートされているわけではありません。 (これを--max-results 0
と組み合わせて使用すると、エンティティ情報のみを取得できます。) Jason Scott (@textfiles) によるすべてのツイートを収集します。
snscrape twitter-user textfiles
通常は、さらに処理するために出力をファイルにリダイレクトすると便利です。たとえば bash ではファイル名twitter-@textfiles
を使用します。
snscrape twitter-user textfiles > twitter-@textfiles
ハッシュタグ #archiveteam が付いた最新の 100 件のツイートを取得するには:
snscrape --max-results 100 twitter-hashtag archiveteam
Python のライブラリとして snscrape を使用することも可能ですが、これは現時点では文書化されていません。
snscrape に関する問題を発見した場合は、https://github.com/JustAnotherArchivist/snscrape/issues に報告してください。 CLI を使用する場合は、 -vv
を指定して snscrape を実行し、ログ出力を問題に含めてください。 snscrape をモジュールとして使用する場合は、 import logging; logging.basicConfig(level = logging.DEBUG)
(snscrape をまったく使用する前) を実行し、問題にログ出力を含めます。
場合によっては、デバッグにはログで入手可能な情報よりも多くの情報が必要になる場合があります。 CLI には、(デフォルトではクラッシュのみではなく) 重要なログ メッセージに基づいて snscrape 内のすべてのローカル変数をダンプできるようにする--dump-locals
オプションがあります。ダンプ ファイルには機密情報が含まれている場合があり、ユーザーを特定するために使用される可能性があることに注意してください (たとえば、サービスの応答に IP アドレスが含まれている場合など)。ファイル転送を非公開で手配したい場合は、問題にその旨を記載してください。
このプログラムはフリー ソフトウェアです。Free Software Foundation が発行する GNU General Public License の条件 (ライセンスのバージョン 3、または (ユーザーの選択による) 以降のバージョン) に基づいて再配布したり、変更したりすることができます。
このプログラムは役立つことを期待して配布されていますが、いかなる保証もありません。商品性や特定目的への適合性についての暗黙の保証もありません。詳細については、GNU 一般公衆利用許諾書を参照してください。
このプログラムと一緒に GNU 一般公衆利用許諾書のコピーも受け取っているはずです。そうでない場合は、https://www.gnu.org/licenses/ を参照してください。