Pythonのbeautifulsoupとは
Pythonでbeautifulsoupを使って情報を取得するときに詰まったのでメモ。本題に行きたい人はこの部分は飛ばしてくれ。
beautifulsoupはhtmlからデータを抽出するライブラリ。
htmlは誰にでも見れる情報だが、その構造は複雑で見にくい。これを欲しい情報だけを整理して渡してくれるのがbeautifulsoup。Pythonのライブラリだ。
ライブラリはある目的のため(今回で言えばhtml情報の取得)の機能を集めたパッケージの総称であり、パッケージとは複数のモジュールを集めたものであり、モジュールとは複数の関数をまとめたものである。
複雑だがプログラミングをやる上では一応の理解はしておきたい概念群である。
なぜこんなことを書いたのかといえば下のcrayonというプログラムを表示するためのプラグインのコードがトップページの記事の要約文で出てきちゃっていたのでそれを隠すためだ。
本題
ここからが本題。
<h1><img>あいうえお</h1>
みたいな感じでh1タグの中の「あいうえお」というテキストだけを抜き出したい。
そこて、find_allで抜いてみるとh1タグが二つある。
<h1>xxxxx</h1> <h1>あいうえお</h1>
こんな感じだ。
今回抜き出したいのは2番目の「あいうえお」なので、
title=soup.find_all('h1')[1]
のように[1]をつけてあげると2番目のh1が抜き出せる。
プログラミングは0から始まるので2番目は1になるのだ。012…と続く。
で、このままだとまだh1などのタグがついたままなので、
print(title.get_text())
get_textでtext部分だけを抜いてやる。
一方で、
print(type(title.get_text()))
しかし、このtypeを先頭に持ってきて書く書き方はダメだった。
他のサイトではこちらなら何でもテキスト抜き取れると書いてあったがダメだったので備忘。
まだ学びはじめで何故こうなるのかはわからない。
Pythonは奥が深くて面白い。
コメント