あなたは、Pythonによるスクレイピングに興味はありませんか?
「プログラミングの知識がない」「そもそもPythonのインストールが難しそう」といった理由から、はじめられないという方も多いでしょう。今回は、プログラミング初心者でも安心の開発環境の構築なしでできるPythonによるスクレイピングについて解説します。
Google Colaboratoryを使って、今すぐスクレイピングを体験してみましょう。
この記事もオススメ
この記事の目次
PythonがWebスクレイピングにおすすめな理由
AI(人工知能)の機械学習に使えるプログラミング言語として、人気が高いPython。記述が簡潔で、初心者でも取り組みやすい点もその人気を支えています。
それだけでなく、Pythonはスクレイピングを行う場合にもとても扱いやすいです。スクレイピングの用途に適したライブラリが豊富で、少ないコードですぐにデータを取得できます。また、Google Colab上でPythonを使えば、環境構築なしですぐにプログラミングができる点も魅力。
ライブラリやインターネット上の情報を参考にできるので、プログラミング初心者の方でもとても取り組みやすいです。スクレイピングに興味があるけれど、どのプログラミング言語を使えば良いか迷っているという方は、まずはPythonを試すことをおすすめします。
【無料】ChatGPTの使い方をマンツーマンで教えます
・ChatGPTの基本的な使い方がわかる
・AIの仕組みがわかる
・AIをどうやって活用すれば良いかがわかる お申し込みは1日5組限定です。
今すぐお申し込みください。 ChatGPTレッスンを確認する▼
https://tech-camp.in/lps/expert/chatgpt_lesson
Webスクレイピングについて
Webスクレイピングを行う上で、その概要を理解することは利用目的を明確にして不要なリスクを避けるためにとても重要です。
Webページのデータを取得する手段
スクレイピングはWebページのデータを取得する手段の1つです。クローリングによってWebページをリンクを辿り、スクレイピングによって自分がほしいデータを抜き出します。アプリ・サービスの開発や効率的な情報の収集など、スクレイピングにはさまざまな活用方法があります。
外部のデータを活用する方法はスクレイピングだけではなく、APIを利用するという選択肢もあります。WebサイトからAPIが提供されていて、あなたが求めるデータと合っている場合にはそれを利用すると良いでしょう。
利用する場合には注意が必要
スクレイピングは外部のWebサイトから情報を取得します。取得する際には、Webサイトの利用規約に反していないか必ず確認しましょう。場合によっては、著作権法に触れる場合や不法行為責任を問われる場合もあります。
PythonでWebスクレイピングをやってみよう
それでは、早速PythonでWebスクレイピングに挑戦してみましょう。以下で、シンプルなWebスクレイピングを行う方法について解説していきます。
環境構築なしで使えるGoogle Colaboratoryを使用
今回は、開発環境の構築なしですぐに使えるGoogle Colaboratoryを使用します。Google Colaboratory(以下、Colab)は、機械学習の学習を目的に教育機関・研究機関向けに開発された研究プロジェクトです。
オープンソースプロジェクトのJupyter Notebookをベースに作られており、クラウド上で利用が可能。インターネット環境とパソコンがあれば、無料で手軽に使用できます。
Colabで制作したノートブックはGoogle Driveに保存されます。そのため、チームなどで開発を進める場合にも、共有がスムーズです。また、最大の特徴はコストをかけずにGPUが利用できる点です。これにより、Colabは機械学習に携わるエンジニアから注目を集めるようになりました。
Colabは以下のURLにアクセスすれば、すぐに利用できます。
Hello, Colaboratory – Colaboratory
Google ColaboratoryはPython 3が利用可能
Colabでは、Python 2とPython 3のどちらも利用可能。今回は、Python 3を使用します。Colabはスクレイピングに必要となるライブラリが揃っている点も初心者におすすめな理由です。
パッケージをインストール
まず、新しいノートブックを作成し、スクレイピングに必要となるパッケージをインストールしましょう。今回使うのは、以下の2つのパッケージです。
Requestsは、Webサイトにアクセスして構造のデータを取得するためのライブラリ。Beautiful SoupはWebサイトを構築しているHTML・XMLの内部の解析を行い、欲しいデータを取得するためのライブラリです。
「ファイル」から「Python 3の新しいノートブック」を開きます。まず、インストールされているパッケージを確認します。「!」をつけると、LinuxのコマンドをColab上で使用可能です。
!pip freeze
見づらい場合には、下記のコマンドで対象をしぼりましょう。
!pip freeze | grep -e request -e beautiful
現状のColabでは、必要となるパッケージがインストールされています。せっかくなので、使用が推奨されているlxmlをインストールしてみます。
!pip install lxml
再度、インストールされたパッケージを確認すると、「lxml==4.2.4」が追加されていることがわかります。「pip」は基本となるコマンドなので覚えておきましょう。
Webページのデータを取得
まずは、Webページのデータを丸ごと取得してみましょう。
import requests
from bs4 import BeautifulSoupurl = “”
r = requests.get(url)
soup = BeautifulSoup(r.text,”html.parser”)print(soup.text)
「url」には、スクレイピングを行いたいURLを入力してください。これで、取得したWebページの情報がすべて表示されました。
Webページで要素を指定してデータを取得
WebページはHTML・CSSなどで構成。HTMLはh1・div・aなどの要素入れ子の構造になっています。
次に、その要素を指定してスクレイピングを行います。
まず、タイトルを取得してみましょう。
import requests
from bs4 import BeautifulSoupurl = “”
r = requests.get(url)
soup = BeautifulSoup(r.text,”html.parser”)print(soup.title)
タグと一緒にタイトルが表示されます。次は「a」のタグを取得します。同様に「soup.a」と記述すると、1つしか取得できません。そのため、ここでは「find_all」を使用します。
import requests
from bs4 import BeautifulSoupurl = “”
r = requests.get(url)
soup = BeautifulSoup(r.text,”html.parser”)print(soup.find_all(“a”))
タグ・URL・テキストがすべて表示されますが、その中から必要とする情報だけを表示させることも可能です。
import requests
from bs4 import BeautifulSoupurl = “”
r = requests.get(url)
soup = BeautifulSoup(r.text,”html.parser”)tags = soup.find_all(“a”)
print (“HTMLを含めて表示:”)
for tag in tags:
print(tag)print (“テキストのみを表示:”)
for tag in tags:
print (tag.string)print (“URLのみを表示:”)
for link in tags:
print (link.get(“href”))
「find_all」を使えば、CSSのクラスやテキストの内容を指定してスクレイピングを行うことも可能です。Pythonのライブラリを使用すれば、このように簡単にスクレイピングができます。
取得した情報をCSVに出力する
スクレイピングを取得したデータを出力することももちろん可能です。
import requests
from bs4 import BeautifulSoup
import csvurl = “”
r = requests.get(url)
soup = BeautifulSoup(r.text,”html.parser”)link = []
tags = soup.find_all(“a”)
link.append([tags])
with open(‘link.csv’, ‘w’, encoding=’shift-jis’) as f:
writer = csv.writer(f, lineterminator=’\n’)
writer.writerows(bookmarks)
取得した「a」の要素を「link.csv」というファイルで出力しました。テキストと数字を紐づけて表として出力するなどより細かく設定をすれば、マーケティングなど業務効率化にも役立つでしょう。
ファイルのアップロードとダウンロード
Colab上で出力したファイルをダウンロードする場合には、下記のコマンドを使用します。
files.download(‘ファイル名’)
また、ローカル環境からColabへファイルをアップロードしたい場合には下記のコマンドを使用。ファイルを選択すれば、アップロードが完了します。
from google.colab import files
upload = files.upload()
Pythonでより高度なスクレイピングを行うには
より高度なスクレイピングを行う場合には、モジュールやフレームワークを利用するといった方法があります。もちろん、このような高度なスクレイピングを行うためには、基本的なPythonのプログラミングのスキルを身につける必要があります。
モジュール・フレームワークを利用する
Scrapy
ScrapyやSeleniumを利用すれば、より高度なスクレイピングがスムーズに行えます。
Scrapyはスクレイピング用の高度なフレームワークで、クローリング・スクレイピングにおけるさまざまな機能が利用可能。リンクを辿って複数のWebサイトからスクレイピングを行いたい場合に便利です。
Scrapy | A Fast and Powerful Scraping and Web Crawling Framework
Selenium
Seleniumは自動テストツールとして知られていますが、スクレイピングにも役立ちます。Seleniumを使えば、WebブラウザでJavaScriptが動作して表示される動的なデータも取得可能です。
Selenium – Web Browser Automation
CSSセレクターを活用する
Pythonでスクレイピングを行う際には、CSSセレクターによって取得するデータの指定が可能です。しかし、Webページによっては、CSSセレクターが細かい場合もあります。
そのような場合には、Google Chromeのコンテキストメニューの「検証」をクリック。指定したいHTMLを右クリックし、「Copy → Copy selector」を選択すれば自動でCSSセレクターが生成されます。
取得したいWebページの要素をスムーズに指定できるのでとても便利です。
RSS Feedをスクレイピングする
Feedparserというライブラリを使えば、RSS Feedからもスクレイピングできます。「すぐに消えてしまうデータを取得したい」「自分好みのRSS Feederを作りたい」といった場合に役立つでしょう。
Pythonの学習を行う
スクレイピングを自分のイメージ通りに行うためには、Pythonの学習はやはり必要です。サンプルコードや手順は豊富に見つかりますが、どのように動いているかを理解しなければ的確な作業効率化は難しいでしょう。
Pythonはとても学習しやすいプログラミング言語ですので、スクレイピングに興味を持った方はこの機会に学習をはじめてみてはいかがでしょうか。
PythonでのWebスクレイピングの学習におすすめの書籍を紹介
以下で、Pythonでのスクレイピングの学習に役立つおすすめの書籍について紹介します。
Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド―
Pythonでのクローリングとスクレイピングが基礎から学べるおすすめの書籍です。初心者でもつまづきづらく、Scrapyについても解説されています。
Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう
スクレイピングによるデータの取得をはじめ、収集したデータの機械学習での活用法まで幅広く学べる本です。Pythonの基礎を理解した中級者向けの内容となっています。
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
定型業務をPythonに任せることで、効率化を図ることを目的とした書籍。タイトルにインパクトもあることも手伝い、この本は大きな話題を集めました。
スクレイピングだけでなく、Pythonの基礎がわかりやすく書かれているため、初心者におすすめの本と言えるでしょう。
Pythonによるクローラー&スクレイピング入門 設計・開発から収集データの解析・運用まで
Webスクレイピングに焦点を当て、クローリング・スクレイピングの基礎から応用・運用までしっかりと学べます。開発を担当するエンジニアや業務でデータ収集を行うプログラマーを対象とした書籍です。
PythonによるWebスクレイピング
基礎から、高度な使用方法・法律面までWebスクレイピングについて体系的に学習が可能です。JavaScriptに対応したSeleniumを使用したスクレイピングについても詳しく書かれています。
まとめ
今回は、ColabでPython 3を使って行うスクレイピング方法について紹介しました。プログラミング初心者の方でもすぐにできる簡単な内容でしたが、スクレイピングの概要や仕組みは理解していただけたのではないでしょうか。
この記事を読んで、スクレイピングに興味を持った方は紹介した書籍を参考にしていただき、さらに高度な活用に挑戦してみてください。
はじめての転職、何から始めればいいか分からないなら
「そろそろ転職したいけれど、失敗はしたくない……」そんな方へ、テックキャンプでは読むだけでIT転職が有利になる限定資料を無料プレゼント中!
例えばこのような疑問はありませんか。
・未経験OKの求人へ応募するのは危ない?
・IT業界転職における“35歳限界説”は本当?
・手に職をつけて収入を安定させられる職種は?
資料では、転職でよくある疑問について丁寧に解説します。IT業界だけでなく、転職を考えている全ての方におすすめです。
「自分がIT業界に向いているかどうか」など、IT転職に興味がある方は無料カウンセリングにもお気軽にお申し込みください。