レッスン3 / 3問目

『BeautifulSoupで複数のタグを取得』

このレッスンではBeautifulSoupで指定したタグを全て取得する方法について見ていきましょう。

指定したタグを全て取得するにはfindall()メソッドを使います。

soup.find_all("タグ")

また、find_all()ではなく、「soup("タグ")」と記述してもfind_all()と同じ意味となります。

soup("タグ")

では具体例を見ていきましょう。

以下の例ではaタグを全て取得しています。

  1. from bs4 import BeautifulSoup
  2. html = """
  3.     <a>A</a>
  4.     <a>B</a>
  5.     <a>C</a>
  6. """
  7. soup = BeautifulSoup(html, "html.parser")
  8. print(soup.find_all("a"))
  9. print(soup("a"))
[<a>A</a>, <a>B</a> <a>C</a>]    # aタグを全て取得 [<a>A</a>, <a>B</a> <a>C</a>]

上記のようにタグはリストとして取得されるため、これをfor文やインデックス指定で取得します。

  1. for i in soup.find_all("a"):
  2.     print(i)
  3.     
<a>A</a>    # for文で出力 <a>B</a> <a>C</a>

ではこのレッスンは以上となります。

演習課題にチャレンジしましょう。

Lesson1

まずはrequestsを用いて以下のページを取得してください。

https://manage.leagence-prog.com/sample2/

# 本レッスンではレッスンに必要のないコードや別のURlに対するrequestsは実行できない仕様になっています。
また、URLは変数を使用せず、直接requests.get()の引数に書き込んでください。

Lesson2

aタグを全て取得し、リストとして出力してください。



# 本レッスンではレッスンに必要のないコードや別のURlに対するrequestsは実行できない仕様になっています。

Last updated:2020/1/25

[<a href="#">商品A</a>, <a href="#">商品B</a>, <a href="#">商品C</a>, <a href="#">商品D</a>, <a href="#">商品E</a>]
  1. # 問題1
  2. import requests
  3. from bs4 import BeautifulSoup
  4. r = requests.get("https://manage.leagence-prog.com/sample2/")
  5. # 問題2
  6. soup = BeautifulSoup(r.text, "html.parser")
  7. print(soup.find_all("a"))
main.py
設定
g
n
i
d
a
o
L