今回は、find_all()でH2タグを全部抜きます。

# 実装する機能

  • 弊サイトにアクセスしH2タグを取得する。

# 実装したコード

import requests
from bs4 import BeautifulSoup

target_url = "https://coderecipe.org/func/func_abs.html"
r = requests.get(target_url)
soup = BeautifulSoup(r.text)
h2s=soup.find_all("h2")
for h2 in h2s:
  print(h2.text)

動くサンプル

# コード解説

# ライブラリを読み込む

import requests
from bs4 import BeautifulSoup

requestsは、PythonのHttp通信などを行うライブラリです。

BeautifulSoupは、Htmlを解析して必要な要素を取得するライブラリです。

先に書いておきますが、BeautifulSoupではJavascriptで書き出しをされるページは読み込めません。

# リクエストを受け取る

target_url = "https://coderecipe.org/func/func_abs.html"
r = requests.get(target_url)

ここでは、リクエストライブラリを使ってHttpリクエストを送り、サーバーから返ってきたデータを変数rに格納しています。

# H2タグを取得する

soup = BeautifulSoup(r.text)
h2s=soup.find_all("h2")
for h2 in h2s:
  print(h2.text)

r.textでリクエストのHtmlをパースします。 soup.find_all()で指定した全ての要素を取得します。つまり、複数です。 前回は、print()で表示できましたが、今回はfor文などでループ処理を行い値を取り出さないといけません。