こんにちは!今回は、BeautifulSoupを使ってHTML要素の改行や空白を削除する方法について解説していきます。
BeautifulSoupとは
BeautifulSoupは、PythonでHTMLやXMLの解析を行うためのライブラリです。HTMLやXMLの構造を解析し、要素を抽出したり、属性やテキストを取得したりすることができます。
BeautifulSoupでHTML要素を抽出する方法
まず、HTML要素を抽出する方法について説明します。以下の例では、Pythonのrequestsモジュールを使って、WebページのHTMLを取得し、BeautifulSoupを使ってtitle要素を抽出しています。
import requests from bs4 import BeautifulSoup url = "http://example.com" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") title = soup.title print(title)
このプログラムを実行すると、以下のようにtitle要素が取得されます。
<title>Example Domain</title>
BeautifulSoupでHTML要素の改行を削除する方法
次に、BeautifulSoupを使ってHTML要素の改行を削除する方法について説明します。
以下の例では、先ほどのプログラムに加えて、strip()メソッドを使ってtitle要素内の改行を削除しています。
import requests from bs4 import BeautifulSoup url = "http://example.com" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") title = soup.title.string.strip() print(title)
このプログラムを実行すると、以下のようにtitle要素内の改行が削除された文字列が取得されます。
Example Domain
BeautifulSoupでHTML要素の空白を削除する方法
次に、BeautifulSoupを使ってHTML要素の空白を削除する方法について説明します。
以下の例では、先ほどのプログラムに加えて、replace()メソッドを使ってtitle要素内の空白を削除しています。
import requests
from bs4 import BeautifulSoup
url = "http://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
title = soup.title.string.strip().replace(" ", "")
print(title)
このプログラムを実行すると、以下のようにtitle要素内の空白が削除された文字列が取得されます。
ExampleDomain
BeautifulSoupで特定のHTML要素を削除する方法
次に、BeautifulSoupを使って特定のHTML要素を削除する方法について説明します。
以下の例では、Pythonのdel文を使って、Webページ内のすべてのa要素を削除しています。
import requests
from bs4 import BeautifulSoup
url = "http://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
for a in soup.find_all("a"):
a.decompose()
print(soup)
このプログラムを実行すると、Webページ内のすべてのa要素が削除されたHTMLが取得されます。
BeautifulSoupを活用した実用的な例
最後に、BeautifulSoupを活用した実用的な例を紹介します。
以下の例では、Pythonのcsvモジュールを使って、Webページからテーブルデータを抽出し、CSVファイルとして保存しています。
import requests
from bs4 import BeautifulSoup
import csv
url = "http://example.com/table.html"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
table = soup.find("table")
rows = table.find_all("tr")
with open("data.csv", "w", encoding="utf-8") as f:
writer = csv.writer(f)
for row in rows:
csv_row = []
for cell in row.find_all(["td", "th"]):
csv_row.append(cell.get_text())
writer.writerow(csv_row)
print("CSVファイルの保存が完了しました。")
このプログラムを実行すると、Webページから抽出したテーブルデータがCSVファイルとして保存されます。
まとめ
今回は、BeautifulSoupを使ってHTML要素の改行や空白を削除する方法について解説しました。BeautifulSoupは、PythonでHTMLやXMLの解析を行うための強力なライブラリであり、Webスクレイピングやデータ処理において非常に便利です。ぜひ、活用してみてください。



![[Python]ランダムな配列を操作する(作成、ランダム取得)](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-372.jpg)

