👌

【bs4】beautifulsoupでパースするとhtml属性の順番が変わるトラブル

2022/12/18に公開

beautifulsoupはhtmlを解析するライブラリですが、このライブラリをつかっていると困ったことがおきました。
Amazon | マルタイ 元祖長浜屋協力豚骨ラーメン 145g×12個 | マルタイ | 食品・飲料・お酒 通販
Amazon | マルタイ 袋元祖長浜屋協力豚骨ラーメン5食 440g×6個 | マルタイ | 食品・飲料・お酒 通販bs4でパースをするとhtmlの属性の順番が変わってしまうのです
たとえば以下のようなhtmlがあるとしましょう。

<a title="samaple" href="sample.com">

上記をbs4でパースすると

<a href="sample.com" title="samaple">

勝手に順番が変わってしまうのです。こちらはbeautifulsoupの仕様だと思わますのでトラブルというよりは仕方のないことかと思います。bs4のオブジェクトは文字列ではありませんので文字列としてあつかう場合はstr()を使うなりして変換してやればいいと思います。

Discussion