スクレイピング
2025-04-18
はい、氷翠です。
上司から言われて、サイト上のデータを集めて、今後の参考にしようということで、氷翠が最初に思ったのが、WEBスクレイピングというもの。
WEBサイト上の情報を自動で収集する方法・プログラムということです。
ただ、これには、「python」というプログラム言語を使うしかない。ただ、そのかわり、すでにいろんなライブラリが存在しているので、それらを利用することでこれを実現することができます。
氷翠はpythonに関してはほぼ素人で、何かを作ったという経験もない。そこで、天下のchatGPTに聞きながら作業を進めていこうと思う。
完全な自動化は最初できなくて、一つずつデータを1行分のデータをとり出し、エクセルにペーストしていくという感じ。そもそも一つ目は全て自分でデータをコピーしてエクセルに貼り付け…どこにデータが存在しているのかを確認。
それを元にそのサイトの専用のプログラムを用意して、一つずつ作業。これだけでも大分効率があがる。
その後、一つのサイトに絞り込み、そのサイト内のデータをまとめてCSVに保存することに成功。
というのも、複数のサイトの中には、このスクレイピング対策がされているようで、プログラムを受け付けないような処理がされているところがあるので、なかなか進まない。時間もないので、とりあえず出来た資料を提出するところまで。
まだスクレイピングができるようなサイトもあるので、そこもなんとかデータをとっていこうかと考えている。
import requests
from bs4 import BeautifulSoup
import pyperclip
import sys
from urllib.parse import urlparse, parse_qs
import re
まだこれらの意味も詳しいことはわからないけど、「import」ということは、ライブラリを使うという感じで、「request」は指定のURLからそのページのソースを取得するというものだ。
「BeautifulSoup」はソースをHTMLと評価して、特定のタグ、クラスなどを指定してデータをとり出すというもの。
他のものは、基本的にファイルに関連するものとか、クリップボードにデータをいれることで、データをコピーするもので、プログラムの最後に「pyperclip.copy(line)」とすることでコピーのコマンドを実行する。
そうすれば、データを手動でコピーではなく、すでにコピーは済んでいるので、プログラムが終わった後、そのままデータをエクセルにペーストするだけの作業になる。
これを後にやめて、ファイルにどんどん追加するという処理をしていけば、自動的にファイルに保存されるというものだ。
python…難しいかもしれないけど、いろいろと小回りの利く言語だなと、つくづく思った。
コメントを残す