挫折しないプログラミング習得方法
あつまれ 独学エンジニア
Python基礎

Pythonでスクレイピングする方法【サンプルコード】

今日は「Pythonでスクレイピングをする方法」についてサンプルコード付きで紹介します。

スクレイピングとは

まず、スクレイピングとは、Webサイトの情報を取得する技術です。「Yahooの新着ニュースの見出しだけを取得してきて一覧表にする」といった使い方ができたりします。

 

スクレイピングの注意点

スクレイピングをする時は注意しなければならないことがあります。

サイトによっては規約に「スクレイピングの禁止」をうたっているところがあります。そのようなサイトではスクレイピングをしてはいけません。

スクレイピングは、Webサイトにアクセスしてデータを取得するため「相手のサーバーに負担をかけてしまう」ということがあるからです。

 

禁止されていないサイトにおいても、スクレイピングの回数が多くなりすぎないように気をつけましょう。

 

サンプルコード

それではサンプルコードを2つご紹介します。

  1. 取得したデータを「ターミナルに表示する」プログラム。
  2. 取得したデータを「テキストファイル」で保存するプログラム。

 

ターミナルという黒い画面に表示するバージョンとテキストファイルとして保存するバージョンです。どちらもメリットデメリットがあるので実際に使う際は用途に応じて使っていきましょう。

 

①ターミナルに表示するプログラム

HTMLのすべてのタグを取得して「ターミナルに表示する」プログラムです。

url = の部分を変更すれば「お好きなWebサイト」のデータを取得できるようになります。

#インターネットにアクセスするためのライブラリをインポート
import requests

#URLを入力する
url = 'https://ymori.com/books/python2nen/test1.html'

#データを取得する
response = requests.get(url)

#文字化けを防ぐ
response.encoding = response.apparent_encoding

#取得した文字列データを表示する
print(response.text)

 

このコードをコピペして実行してみてください。

こちらのPaizaというサイトで実行できます。左上の言語選択のところで「Python3」を選んで実行してみてください。

②HTMLタグをテキストファイルで保存するプログラム

①では、「画面に表示するだけ」のプログラムでしたが、応用バージョンをご紹介します。

すべてのHTMLタグを「テキストファイル」で保存するプログラムです。

#インターネットにアクセスするためのライブラリをインポートする
import requests

#URLを指定する
url = 'https://ymori.com/books/python2nen/test1.html'

#データを取得する
response = requests.get(url)

#文字化けの防止
response.encoding = response.apparent_encoding

#保存するファイル名を指定する
filename = 'download.txt'

#ファイルを書き込みモードで開く
f = open(filename, mode= 'w')

#取得したデータを書き込む
f.write(response.text)

#ファイルを閉じる
f.close()

 

プログラミング初心者の方、駆け出しエンジニアの方でPythonをはじめた方はまずスクレイピングをやってみると面白いと思います。

プログラミングは楽しんだもん勝ちです。

短いコードでも動くプログラムをどんどん作っていくだけで楽しいです。その積み重ねがプログラミングの上達につながっていきます。

 

スクレイピング習得におすすめの本

「スクレイピングやってみたいけど、学習におすすめの本は無い?」という初心者の方におすすめなのはこちらです。

スクレイピングに関する本を何冊か見てきましたが、これが一番易しく書いてあると思います。ぜひ買ってみてください。