今日はPythonのライブラリについて勉強しながら
qiitaにいろいろまとめていこうと思って記事を書いています!
それでは早速、スタートです!
Pythonの標準ライブラリ
標準ライブラリとは?
標準ライブラリは組み込み関数のほかにPythonの中に含まれている
モジュール群のことを言います!
モジュールって何っていうと関数を埋め込んだ
Pythonプログラムのことです!
標準ライブラリ使います!ということは
Pythonに含まれている関数を使います!
ということと同義になります
ファイル・ディレクトリ操作
コンピュータ上のファイルを動かしたり、ファイルを作ったりします
os
ファイルやフォルダの名前を変更したり、削除したり、存在を確認できる
「カレントディレクトリ」を調べたり、変えたりできる
os.pathというサブモジュールと組み合わせることで
ファイルパスの結合や分割が安全に行えます
・os.path.exists('ファイル名'):ファイルがあるかどうかの確認
・os.mkdir('新しいフォルダ名'):フォルダの作成
・os.listdir('.'):今いる場所のファイル一覧を取得
pathlib
os.pathの機能をより直感的でオブジェクト指向的に
扱えるようにしたライブラリです
パスを文字列ではなく「オブジェクト」として扱うため
/によってパスを結合できるなどコードがスッキリします
・Path('フォルダ名') / 'ファイル名':パスの結合
・p = Path('ファイル名'); p.exists():ファイルの存在確認
・p.name:ファイル名の取得
システム・実行環境の操作
sys
Pythonの実行環境に関する情報にアクセスできる
プログラムを起動する際に与えられた引数(コマンドライン引数)を
取得したり、プログラムを途中で終了させたりできる
・sys.argv:コマンドライン引数をリストとして取得
・sys.exit():プログラムの強制終了
・sys.platform:実行中のOSを調べる
データ形式の変換
json
多くのWeb APIで使われているJSON形式のデータを
Pythonの辞書やリストと相互に変換できる
インターネットから取得したデータをプログラムで使う際に
必須の知識となります
・json.loads(json文字列):JSON文字列をPythonの辞書/リストに変換
・json.dumps(辞書):Pythonの辞書をJSON文字列に変換
csv
Excelなどで使われるcsvファイルを読み書きするためのライブラリ
1行ずつリストとしてデータを読み込んだりリストのリストを
CSVファイルに書き出したりできます
・CSVファイルの読み込みとデータ処理
・プログラムの実行結果をCSVファイルとして保存
便利なデータ構造
Python標準のリストや辞書をさらに高機能にしたもの
collection
特殊で便利なデータ構造が集まっている
・Counter:リスト内の各要素が何個あるか数えて辞書形式で返す
・defaultdict:辞書に存在しないキーにアクセスしたときにエラーではなく
自動で初期値を設定してくれる、キーの存在を毎回確認する手間が省ける
・deque:リストの先頭への要素追加・削除が高速なデータ構造
Web操作ライブラリ
Requests
PythonでHTTP通信をするならまずはこれ
このURLにアクセスしてデータを取ってくるという命令ができる
ログインやファイルのアップロードなども簡単
・WebAPIからJSONデータを取得する
・WebページのHTMLをダウンロードしてくる
・画像などのファイルをダウンロードする
Beautiful Soup 4
RequestでHTMLを取得し、Beautiful Soupで情報を抜き出すという使い方
・Webスクレイピング全般。特定のクラス名やIDを持つタグを探して
その中のテキストやリンクを取得する
lxml
C言語で書かれているため、非常に高速に動作する
Beautiful Soupよりも厳密でXMLの解析などにも強力
Beautiful Soupは内部のパーサーとしてlxmlを
使用することもでき、その場合は「使いやすさ」と「速さ」を両立できる
・大量のWebページを高速に処理する必要がある場合
・XML形式のデータを扱う場合
Selenium
ブラウザ自動化のデファクトスタンダード
Webサイトのテスト自動化ツールとして開発されたので
クリック、入力、スクロールなど人間ができる操作はほぼすべて可能
弱点としては実際のブラウザを使用するため、Requestsなどと比べて
動作が遅く、リソースも多く消費する
Playwright
Seleniumよりも高速で非同期処理に対応しているため効率的なコードがかける
また、特定のネットワークリクエストを待つなどモダンなWebサイトに
対応した便利な機能が豊富
・Seleniumと同じく、JavaScriptが多用されたサイトのスクレイピングやテスト
・最近ではSeleniumに代わる候補として人気が高まっている
Scrapy
複数のページを並行して巡回し、データを効率的に収集・保存するための
機能がすべてそろっている。非同期で動作するため非常に高速
クローリング作業を体系的に管理できる
・ECサイトの商品情報を丸ごと収集する
・定期的にサイトを巡回して情報を更新するようなシステムを構築する場合