秋月電子の「お気に入り」をリスト化するスクリプト
2024年1月26日に、いつもお世話になっている秋月電子通商さんの通販サイトがリニューアルされました。リニューアル内容は窓の杜の記事に詳しく、ざっと回った限り見やすくなっていて歓迎です。
ただ、上記の記事にもあるように若干不便になったと感じるところもあり、私の場合その最たる物が「マイページ > お気に入り」です。従来は全件が1ページにまとまっていて、ブラウザのページ内検索で簡単に内容へアクセスできていたのですが、リニューアル後は20件ごとに分割されていて、何度も左右ボタンをクリックして探しているうちに何を見たかったのか忘れてしまうという体たらく(半分ぐらい私が悪い)。URLのクエリパラメータに「ps=」を入れると1ページ50件までは拡張できますが、私の場合は259件あって、6ページよりも減らすことができません。 そこで、スクレイピングしてリストを作ることを考えました。
ページのソースを見ると、細かくブロック分けされclassも適当に付いているのでBeautiful Soup向きです(?)。ログインしないと「お気に入り」の内容は見えないので少しどうしようかと考えて、そもそも内容のコントロールは自分で行うところですから自動ログインして取得する必要は無いと見て、ローカルにhtmlファイルで保存しておき、ローカルファイルからスクレイピングすることにしました。
スクリプトはGitHubにリポジトリを作って公開しています。
では使い方です。
0. Python3とbeautifulsoup4が必要です。それぞれ公式のインストール手順に従って下さい。web上にチュートリアルはたくさんあります。
1. 自分のお気に入りページを開きます。ここでURLの末尾に「?ps=50」と入れると表示が50件になります。(左記リンクで開けば入ります。)
2. ローカルにhtml形式で保存します。Chromeだと「ファイル > ページを別名で保存…」で、形式を「ウェブページ、HTMLのみ」として、ファイル名を「01.html」として下さい。スクリプトでは「【2ケタの数字】.html」しか受け付けません。Macの場合ショートカットは「⌘s」。
3. 「→」を押して2ページ目を表示し、ファイル名を「02.html」として保存。これを最後のページまで繰り返します。
4. Pythonスクリプト「akizuki_fav_list.py」と同じフォルダにダウンロードしたhtmlファイルをおいて下さい。
5. Pythonスクリプトを実行すると、同じフォルダに「fav.tsv」というタブ区切りテキストファイルが出力されます。これを表計算ソフトで開くと次のような内容になっています:
Pythonスクリプトに引数はありません。実行方法はOSをはじめ実行環境によります。Macの場合はターミナルを開いて当該フォルダで「python3 akizuki_fav_list.py」と入力します。 なお、出力ファイルを.tsvにしたのは品名やメモにカンマが入る場合があると思ったからです。抽出している内容は「品名, 販売単位, 販売価格, 税抜価格, メモ, リンク」で、増減したければスクリプトを変更して下さい。 以上、何かの参考になれば幸いです。 パドラッパ from MacBook Air (2017)
ただ、上記の記事にもあるように若干不便になったと感じるところもあり、私の場合その最たる物が「マイページ > お気に入り」です。従来は全件が1ページにまとまっていて、ブラウザのページ内検索で簡単に内容へアクセスできていたのですが、リニューアル後は20件ごとに分割されていて、何度も左右ボタンをクリックして探しているうちに何を見たかったのか忘れてしまうという体たらく(半分ぐらい私が悪い)。URLのクエリパラメータに「ps=」を入れると1ページ50件までは拡張できますが、私の場合は259件あって、6ページよりも減らすことができません。 そこで、スクレイピングしてリストを作ることを考えました。
ページのソースを見ると、細かくブロック分けされclassも適当に付いているのでBeautiful Soup向きです(?)。ログインしないと「お気に入り」の内容は見えないので少しどうしようかと考えて、そもそも内容のコントロールは自分で行うところですから自動ログインして取得する必要は無いと見て、ローカルにhtmlファイルで保存しておき、ローカルファイルからスクレイピングすることにしました。
スクリプトはGitHubにリポジトリを作って公開しています。
では使い方です。
0. Python3とbeautifulsoup4が必要です。それぞれ公式のインストール手順に従って下さい。web上にチュートリアルはたくさんあります。
1. 自分のお気に入りページを開きます。ここでURLの末尾に「?ps=50」と入れると表示が50件になります。(左記リンクで開けば入ります。)
2. ローカルにhtml形式で保存します。Chromeだと「ファイル > ページを別名で保存…」で、形式を「ウェブページ、HTMLのみ」として、ファイル名を「01.html」として下さい。スクリプトでは「【2ケタの数字】.html」しか受け付けません。Macの場合ショートカットは「⌘s」。
3. 「→」を押して2ページ目を表示し、ファイル名を「02.html」として保存。これを最後のページまで繰り返します。
4. Pythonスクリプト「akizuki_fav_list.py」と同じフォルダにダウンロードしたhtmlファイルをおいて下さい。
5. Pythonスクリプトを実行すると、同じフォルダに「fav.tsv」というタブ区切りテキストファイルが出力されます。これを表計算ソフトで開くと次のような内容になっています:
Pythonスクリプトに引数はありません。実行方法はOSをはじめ実行環境によります。Macの場合はターミナルを開いて当該フォルダで「python3 akizuki_fav_list.py」と入力します。 なお、出力ファイルを.tsvにしたのは品名やメモにカンマが入る場合があると思ったからです。抽出している内容は「品名, 販売単位, 販売価格, 税抜価格, メモ, リンク」で、増減したければスクリプトを変更して下さい。 以上、何かの参考になれば幸いです。 パドラッパ from MacBook Air (2017)
最近のコメント