今回は、find_all()
でクラスを全部抜きます。
# 実装する機能
- 弊サイトにアクセスし
class=language-python
を取得する。
# 実装したコード
import requests
from bs4 import BeautifulSoup
target_url = "https://coderecipe.org/func/func_abs.html"
r = requests.get(target_url)
soup = BeautifulSoup(r.text)
classes=soup.find_all(class_="language-python")
for clas in classes:
print(clas.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に格納しています。
# Class language-python を取得する
soup = BeautifulSoup(r.text)
classes=soup.find_all(class_="language-python")
for clas in classes:
print(clas.text)
r.text
でリクエストのHtmlをパースします。
soup.find_all()
で指定した全ての要素を取得します。つまり、複数です。
注意点は、class
は、pythonの予約語で使えませんのでBS4ではclass_
を代わりに使います。
前回は、print()で表示できましたが、今回はfor文などでループ処理を行い値を取り出さないといけません。