BeautifulsoupはPythonのライブラリで、HTMLやXMLからデータを抽出するために使われます。
Beautifulsoupの基本的な機能と使用目的
Beautifulsoupは、HTMLやXMLのテキストからデータを抽出するために使われます。主な使用目的は、Webスクレイピングやデータマイニングです。
soup.selectの使用方法と活用例
soup.selectは、CSSセレクタを使ってHTMLから要素を検索するために使われます。
from bs4 import BeautifulSoup
import requests
url = "http://example.com"
res = requests.get(url)
soup = BeautifulSoup(res.text, "html.parser")
# idがfirstのdiv要素を取得
div_first = soup.select("#first")
# classがsecondのdiv要素を取得
div_second = soup.select(".second")
# li要素のテキストを全て取得
li_text = [li.get_text() for li in soup.select("li")]
print(div_first)
print(div_second)
print(li_text)
上記の例では、select()メソッドを使って、idがfirstのdiv要素、classがsecondのdiv要素、すべてのli要素のテキストを取得しています。
soup-containsの使用方法と活用例
soup-containsは、指定した文字列を含む要素を検索するために使われます。
from bs4 import BeautifulSoup
import requests
url = "http://example.com"
res = requests.get(url)
soup = BeautifulSoup(res.text, "html.parser")
# "example"を含む要素を取得
contains_example = soup.find_all(text=re.compile("example"))
print(contains_example)
上記の例では、findAll()メソッドとtext引数を使って、exampleを含む要素を取得しています。
soup.findの使用方法と活用例
soup.findは、指定したタグを持つ最初の要素を検索するために使われます。
from bs4 import BeautifulSoup
import re
import requests
url = "http://example.com"
res = requests.get(url)
soup = BeautifulSoup(res.text, "html.parser")
# 最初のa要素を取得
first_a = soup.find("a")
print(first_a)
上記の例では、find()メソッドを使って、最初のa要素を取得しています。
soup.findとsoup.selectの違いと使用場面
find()メソッドとselect()メソッドは、どちらも要素を検索するために使われますが、違いがあります。
find()メソッドは、指定したタグを持つ最初の要素を検索します。select()メソッドは、CSSセレクタを使って要素を検索します。
使用場面としては、find()メソッドは、単一の要素を検索する場合に使われます。一方、select()メソッドは、複数の要素を検索する場合に使われます。
soup-containsと他のメソッドとの違いと使用場面
soup-containsメソッドは、指定した文字列を含む要素を検索するために使われます。他のメソッドとの違いは、検索する要素を限定しないことです。
使用場面としては、特定の要素を検索する場合ではなく、ある文字列を含むすべての要素を検索する場合に使われます。
まとめ
Beautifulsoupは、HTMLやXMLからデータを抽出するために使われます。soup.select、soup-contains、soup.findなどのメソッドを使って、要素を検索することができます。
soup.select()メソッドは、CSSセレクタを使って要素を検索するために使われます。soup-containsメソッドは、指定した文字列を含む要素を検索するために使われます。soup.find()メソッドは、指定したタグを持つ最初の要素を検索するために使われます。
使用場面としては、soup.select()メソッドは、複数の要素を検索する場合に使われます。soup-containsメソッドは、ある文字列を含むすべての要素を検索する場合に使われます。soup.find()メソッドは、単一の要素を検索する場合に使われます。


![[Python]requestsでheader(get json post header取得)](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-312.jpg)


