【Python】ローカルに保存したファイルをスクレイピングする方法
Table of Contents
ぜひ読んでほしい方
・スクレイピングをサイトに負荷をかけずに行いたい方
・サイトのソースコードを見たい、あるいはローカルに保存したい方
ローカル環境でスクレイピングするメリット
スクレイピングしたいサイトのソースをローカルに保存してからスクレイピングすることのメリットは、サイトに負荷をかける心配がないということです。
スクレイピングをすること自体はなんら違法ではありませんが、スクレイピングしたことにより相手(そのサイトの運営者)のサーバーに負荷をかけると、最悪訴訟に発展したりするので注意が必要です。実際に、過去に不起訴にはなったものの訴えられた事例もあるそうです。
ローカルにファイルを保存する
ローカル環境でサイトをスクレイピングするためには、そのソースコードをローカル環境にダウンロードする必要がありますので、その方法を説明します。
まず、スクレイピングしたいサイトを開き、右クリックします。そしたら、ページの「ソースを表示」をクリックします。
すると、下の画像のようなページが表示されるかと思いますので、右クリックして「名前を付けて保存」をクリックします。
保存先はどこでも問題ありませんが、スクレイピングに使うpythonソースコードと同じディレクトリにするのがおススメです。
ローカルファイルをスクレイピングするコード
今回は、requestsとBeautifulSoupを使ってスクレイピングするのを想定して説明します。
ローカルファイルをスクレイピングする場合と、そのままサイトをスクレイピングする場合とで変わるのは1か所だけです。
まず、サイトをそのままスクレイピングする場合は、以下のようなソースコードになると思います。
1 2 3 |
url = 'スクレイピングしたいサイトのURL' html = requests.get(url) soup = BeautifulSoup(html.content, "html.parser") |
これに対し、ローカルファイルをスクレイピングしたい場合は、上の部分を以下のように変更します。
1 2 3 |
# url = 'スクレイピングしたいサイトのURL' # html = requests.get(url) soup = BeautifulSoup(open('ローカルファイルの相対パス', encoding='utf-8'), "html.parser") |