みなさん、こんにちは、どんぶラッコです。
本日は、スクレイピングについて学んでいきましょう!
そもそもスクレイピングとは何か?
scrapeの意味をロングマン英英辞書で引いてみると
to remove something from a surface using the edge of a knife, a stick etc
https://www.ldoceonline.com/jp/dictionary/scrape
となっています。
つまり、Webサイトから必要な情報を削ぎ取って取得する、みたいなニュアンスです。
では、早速その方法について見ていきましょう!
今回は、BeautifulSoupというライブラリを使って記述をしていきます。
童謡のタイトル一覧を取得しよう!
今回は、こちらのサイトを使わせていただきます。
https://www.uta-net.com/artist/4002/
こちらのサイトでは、童謡・唱歌の一覧を掲載しています。
ということで、サンプルコードです!
from bs4 import BeautifulSoup
import urllib.request as req
# URLを指定
url = 'https://www.uta-net.com/artist/4002/'
# URLのレスポンスを格納する
res = req.urlopen(url)
# 取得したレスポンスを元にBeautifulSoupインスタンスの生成
soup = BeautifulSoup(res, 'html.parser')
# 取得したい要素のセレクタを指定
_songs = soup.select('.side > a')
# Noneの要素を取り除き、曲名を配列化
songs = [_song.string for _song in _songs if _song.string != None]
すると、songsには
このように曲名が入力されていることが確認できますね!
むやみにスクレイピングしない!
ここからは注意点です。
便利なスクレイピングですが、無闇に使わないようにしましょう。
もし間違えてfor文やwhile文の中に記述をしてしまった場合、リクエストの回数分相手のサーバに迷惑をかけることになります。
また、サイトによってはサイトポリシーとしてスクレイピングを禁止しているサイトもあります。
各サイトのポリシーを読み、その基準に乗っ取る形でスクレイピングをしましょう。
とはいえ、サイトの情報を抽出できるというのは非常に便利です。習得したいテクニックの一つですね♪
[…] […]
[…] […]