Webスクレイピング BeautiflSoup()にはどんな機能があるのか 【python】

PythonでWebスクレイピングをおこなう方法

Webスクレイピングときくと、なにか意味をそのまま解釈してしまいwebを掘るというイメージがわいてしまう。一通り、書籍を読みすすめたのですが、もしかすると想像していた内容と違うということがあるかもしれないです。僕自身もいまだにあまり良く意味をわかっていません。

BeautifulSoupモジュールをインストールする

pipインストールの仕方 → コマンドプロンプトで pip install beautifulsoup4 と入力。4はバージョンこと

BeautiflSoup()関数の使い方

BeautiflSoup()関数とは → htmlファイルもしくは、webページのurlを渡すとbeaufifulオブジェクトを生成する。

  • htmlファイルの場合はopen()関数を使って開く。
  • urlの場合はrequests()関数を使って開きます。
  • そしてそれをBeautifulSoup()の引数として渡します。

select()関数の使い方

beautifulオブジェクトに対してselect()関数を用いることでwebページの好きな要素の部分をとってくることできる。

  • select()関数はtagオブジェクトのリストを返す
  • getText()関数にtagオブジェクトを渡すと、そのタグの文字列を取得できる
  • タグの全ての属性を辞書として所持しており、attrsを使うと辞書を参照できる

実際のコード

WEBページをBeautifulSoup()関数の引数に渡す場合

import requests, bs4
res = requests.get('http://nostarch.com')
res.raise_for_status()
example_soup = bs4.BeautifulSoup(res.text)
elems = exampoe_soup.select('p')

hrmlファイルをBeautifulSoup()関数の引数に渡す場合

import bs4
example_file = open('example.html')
example_soup = bs4.BeautifulSoup(example_file)
elems = example_soup.select('p')

for i in range(0, len(elems)):
    print(elems[i].getText())

まとめ

webスクレイピングはwebページの欲しいところだけを抜き出したい時に使えるようです。インターネットで調べるとそんな感じはします。高度なプログラムが書けないし、アイデアもないのでなんとも言えませんが、活用の仕方次第ではきっとすごいことができるのだと思います。「スクレイピング」という単語に臆してはいけないです。少しのやり方を覚えるだけです。

htmlの基礎知識は運よく持っていたので、なんとかなりましたが、webスクレイピングをやるならhtmlの基礎知識も必要だと感じます。