こちらのコンテンツにて「タグを探して表示する」ことを「.find(“タグ名”)」で学びました。
しかし、これは指定したタグの要素を「1つだけ」見つけて取り出す命令でした。
一般的なWEBページにはもっとたくさんの要素があり構成されています。
そこで今度は「すべての要素」を探して表示する命令をしたいと思います。
今回、テスト用として自前で下記のような簡単なWEBページサンプルを用意してみました。
完成はこんな感じです。
このHTMLをスクレイピングしてみましょう。
まずは、liタグを探して、表示させてみます。
すべての要素を探すときは、「.find_all(“タグ名”)」とします。タグをすべて検索して、見つかった要素をリスト形式で返します。
リストの中身はfor文を使えば、1つずつ取り出せます。
解説
import requests | 事前にコマンドプロンプトでインストールしたインターネットにアクセス命令する外部ライブラリ「requests」、これをimportします。 |
from bs4 import BeautifulSoup | 事前にコマンドプロンプトでインストールしたHTMLを解析する外部ライブラリ「BeautifulSoup」、これが入っているbs4というパッケージからBeautifulSoupをimport |
load_url = “https://www.roadtoupload.com/学びファイル/python2年生/Python_sample1.html” | 変数load_urlに解析するWEBページアドレスを代入 |
html = requests.get(load_url) | 変数htmlにネット上のHTMLファイルを読み込む命令のrequests.get(load_url)を代入します。 |
soup = BeautifulSoup(html.content, “html.parser”) | 変数soupにBeautifulSoupを使ったHTML解析の命令を代入します。 |
for element in soup.find_all(“li”): | すべてのliタグを探し、リストの中身はfor文を使い1つずつ取り出します。 |
print(element.text) | インデントさせて(スペースを作り)、文字列だけを取り出す.textをつけてデータを表示します。 |
実行結果
命令通り、すべてのliタグを取り出し表示させることができました。
*尚、ここではバージョン「Python 3.10.1」を使用しています。
この本から引用、参考に学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,000円程ならコスパよく、買っておいてよかったと満足してます。