X Fetcher — X(旧Twitter)の投稿を取得するCLIツール
概要
X Fetcherは、X(旧Twitter)投稿の中身をコマンドラインから取得するための小さなPython製ツールです。通常の投稿(テキスト、画像、動画リンク)に加え、X Articleのような長文記事の本文も取得してMarkdownに変換することを目的としています。さらに、いいね数、リツイート(引用含む)、閲覧数、ブックマーク数などのインタラクション指標も抽出可能で、調査・アーカイブ・自動化ワークフローに組み込む用途に向いています。依存はrequestsのみで、シンプルにURLを渡して実行できる設計です。
リポジトリの統計情報
- スター数: 14
- フォーク数: 0
- ウォッチャー数: 14
- コミット数: 2
- ファイル数: 5
- メインの言語: Python
主な特徴
- 単一URL指定で投稿内容を取得:通常ツイートと長文のX Articleの両方に対応。
- 出力はテキスト(長文はMarkdown変換)とメディアリンク中心で軽量に保存可能。
- インタラクションデータ(いいね、リツイート、閲覧数、ブックマーク)を取得。
- 依存はrequestsのみ、ローカルで簡単に動かせるCLIツール。
技術的なポイント
このプロジェクトはPythonで実装され、外部依存を最小限に抑えた設計が特徴です。fetch_x.pyがエントリポイントで、指定されたXの投稿URLを解析して、HTTPリクエストでページを取得し、ページ内のJSONデータやHTML構造をパースして投稿本文やメディアURL、統計情報を抽出します。長文のX Articleは本文の構造をたどり、段落や見出しをMarkdownに変換して出力する処理が組み込まれている点が注目されます。公式APIキーを使わない手法のため、HTMLスクレイピングや埋め込みJSONの解析に依存する実装になりがちですが、その分セットアップが簡単で即利用可能です。一方で、X側のページ構造変更やアクセス制限(ログイン必須、レート制限、ブロッキング)に弱いため、堅牢性を求める場合はヘッダーの偽装、リトライ、プロキシ対応、あるいは公式API利用への切替検討が必要です。requirements.txtはrequestsのみを指定しており、軽量性を保ちながらもネットワーク障害やHTMLパースの例外処理を追加することで実運用にも耐えられる拡張余地があります。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file — Python環境やキャッシュ、不要ファイルの無視設定を想定。
- LICENSE: file — リポジトリのライセンス情報(確認してください)。
- README.md: file — インストール、使用法、機能の概要が記載されています。
- fetch_x.py: file — メインスクリプト。CLI引数でURLを受け取り、投稿データを取得して出力する処理が含まれます。
- requirements.txt: file — 必要なPythonパッケージ(現状はrequests)が列挙されています。
(fetch_x.pyは短いコードベースで、学習目的や軽い自動化用途に向く実装構成です。実際に運用する際はログ出力、エラーハンドリング、出力フォーマットの選択肢を拡充すると良いでしょう。)
まとめ
シンプルで導入が容易なX投稿スクレイピングCLI。拡張性は高く学習コストも低いです(約50字)。
リポジトリ情報:
- 名前: x-fetcher
- 説明: 説明なし
- スター数: 14
- 言語: Python
- URL: https://github.com/Jane-xiaoer/x-fetcher
- オーナー: Jane-xiaoer
- アバター: https://avatars.githubusercontent.com/u/175961422?v=4
READMEの抜粋:
X Fetcher
抓取 X (Twitter) 帖子内容的命令行工具。支持普通推文和 X Article 长文章。
功能
- 抓取普通推文(文字、图片、视频链接)
- 抓取 X Article 长文章(完整正文,Markdown 格式)
- 获取互动数据(点赞、转发、浏览量、书签数)
安装
git clone https://github.com/Jane-xiaoer/x-fetcher.git
cd x-fetcher
pip install requests
使用
python fetch_x.py <x_url>
示例
# 抓取普通推文
python fetch_x.py "https://x.com/elonmusk/status/123456789"
# 抓取 X Article 长文章
python fetch_x.py "https://x.com/thedankoe/status/2010751592346030461"
输出格式
##…