LoginSignup
0
0

More than 1 year has passed since last update.

pythonで気軽にwebスクレイピング

Last updated at Posted at 2022-04-29

python でwebスクレイピングを実施してみたい

webスクレイピングとは
(プログラムで)ホームページの情報を集めることです

本記事のタイトルでも ある「気軽に」という ポイントがありますので
python の実行環境は googleアカウントがあれば実施可能な
Google Colaboratory
を利用したいと思います

Google Colaboratory(グーグル・コラボレイトリーもしくはコラボラトリー)とは、Googleが機械学習の教育及び研究用に提供しているインストール不要かつ、すぐにPythonや機械学習・深層学習の環境を整えることが出来る無料のサービスです

上記の記事を参照してノートブックの作成を実施します

CEML(臨床工学技士機械学習研究会)のサイトをスクレイピング

私が機械学習を使えるようになったきっかけ
https://sites.google.com/view/ce-machine-learning-lab/home
CEML(臨床工学技士機械学習研究会)
のサイトの(プログラムで)ホームページ情報を集めてみるソースコードを書いてみます

!pip install requests

まずはrequestsインストールしました
次にrequestを使用します


from urllib import request

response = request.urlopen('https://sites.google.com/view/ce-machine-learning-lab/home')
content = response.read()
response.close()
html = content.decode()

title = html.split('<title>')[1].split('</title')[0]
print(title)

サードパーティライブラリ

上記のソースコードで使用されているのは
request という サードパーティライブラリ です

サードパーティライブラリ
Pythonで強力にカスタマイズされたライブラリで

代表的なサードパーティライブラリ 用途 の例でいうと
numpy 数値計算
matplotlib グラフ作成
pandas データ操作、データ集計
Request リクエストモジュール
BeautifulSoup スクレイピングライブラリ
scikit-learn 機械学習ライブラリ
tensorflow 深層学習ライブラリ
jupyter 実行環境、データ分析

となっております

サードパーティライブラリのrequestを使うとよりシンプルに
ホームページ情報を集めてみるソースコードが記載可能です

requests.get()を使用してみる

requests.get()はHTTPのGETメソッドに相当します
HTTPはインターネットをするときに使うお約束事「のひとつ」です

import requests
url = 'https://sites.google.com/view/ce-machine-learning-lab/home'
response = requests.get(url)

response

response.text[:500]

HTMLファイルの内容は文字のみで構成されたテキストデータで
地の文とタグが混在した状態で表示されます

Beautiful Soup でHTMLから 必要なデータを抜き出す

Beautiful SoupはHTMLファイルなどからデータを抽出するためのPythonライブラリです

Google Colaboratoryを利用して 
先ほどスクレイピングしたHTMLデータを
Beautiful Soupでデータ抽出を 実行します

!pip install beautifulsoup4

まずはBeautiful Soupをインストールしました
次にBeautiful Soupを使用します

from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, "html.parser")
soup 

HTML文書をBeautifulSoupの第1引数に渡して、第2引数に使用するパーサーを指定するだけで解析をしてくれます

HTMLパーサーは、HTML文書を解析して、プログラム内で扱いやすいデータに置き換える処理を行います

まとめ

今回 
Google Colaboratoryを利用して 
CEML(臨床工学技士機械学習研究会)のサイトをスクレイピングしました

その後、スクレイピングしたHTMLデータを
Beautiful Soupでデータ抽出を実行しました

次回はyahooニュースをスクレイピングして形態素解析をします

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0