PythonのスクレイピングライブラリであるBeautifulSoupを使用して、HTMLからデータを抽出する際に、改行コード\\n
が邪魔になることがあります。この記事では、そのような改行コードをどのように取り扱うかについて説明します。
BeautifulSoupで改行コードを削除する
BeautifulSoupでスクレイピングを行うと、HTMLの構造によっては改行コード\\n
が含まれることがあります。これは、HTMLの要素間に改行が存在するためです。しかし、これらの改行コードはデータ分析を行う際には邪魔になることが多いです。
以下のように、BeautifulSoupのインスタンス生成の直後に、改行を根こそぎ駆逐することが推奨されています。
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.content, 'lxml')
# これを追加↓
[tag.extract() for tag in soup(string='\\n')]
このコードは、BeautifulSoupのオブジェクト(ここではsoup
)から、改行を全て削除します。具体的には、string='\\n'
という条件を満たすすべての要素(つまり、改行を表す要素)を検索し、それらを全て削除(extract()
)しています。
注意点
改行を削除しても、文字列が分断された構造は保持されたままになりますので、soup.a.string
のような形で取得しようとすると見た目にstringが取れそうでもNoneが返却されてくるパターンがあります。
まとめ
BeautifulSoupでスクレイピングを行う際には、改行コード\\n
を適切に取り扱うことが重要です。この記事では、改行コードを削除する方法を紹介しました。このテクニックを使うことで、スクレイピングしたデータをより扱いやすくすることができます。