【要約】topics.txtを書くだけ。arXivの最新論文をPDFで届けるツール作った [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がarXivの最新論文を効率的に収集しようとした際、公式APIの仕様に起因する問題に直面した。APIが期待通りに動作しないため、最新の情報を取得できない状況が発生した。
- ・arXiv APIのsortBy=submittedDateが機能せず、20年以上前の古い論文が返される。
- ・クエリによる日付フィルタリングを試みたが、サーバーがHTTP 500エラーを返した。
- ・Semantic Scholar APIへの移行を試みたが、レート制限(HTTP 429)に阻まれた。
// Approach
開発者はAPIの信頼性の低さを解消するため、人間がブラウザで閲覧する検索結果ページを直接取得する手法を採用した。これにより、確実に最新の論文データを取得することを目指した。
- ・requestsとBeautifulSoupを用い、order=-announced_date_firstパラメータを指定してスクレイピングを実行。
- ・Windows環境でのPDF生成の容易性を考慮し、weasyprintではなくpdfkitとwkhtmltopdfを選択。
- ・Claude Chatで設計とデバッグを行い、Claude Codeで例外処理の整備やドキュメント追加を行う分業体制を構築。
// Result
開発者は、指定したキーワードに基づき最新論文のサマリとPDFを自動で収集する環境を構築した。これにより、論文調査の工数を大幅に削減できるようになった。
- ・Windowsのタスクスケジューラにより、月次の自動実行を実現。
- ・APIの不具合を回避し、確実に最新の論文データを取得することに成功。
- ・AIとの役割分担を明確化し、開発速度とコードの堅牢性を両立させた。
Senior Engineer Insight
> スクレイピングによる回避策は、APIの不備に対する即時的な解決策として極めて実戦的である。しかし、サイト構造の変化に脆弱である点は運用上のリスクとして認識すべきだ。また、Windows環境でのライブラリ選定において、依存関係の複雑さを避けてpdfkitを選択した判断は、開発コストと保守性の観点から合理的である。AIとの分業についても、設計と検証を人間が担うという原則が示されており、高度な自動化ツール開発における現実的なモデルといえる。