statsuのblog

愛知のデータサイエンティスト。自分の活動記録。主に機械学習やその周辺に技術について学んだことを記録していく予定。

pythonでのWebスクレイピング

pythonでWebスクレイピングをしたのでそのメモ

Webスクレイピング用ライブラリ
  • BeautifulSoupというライブラリでHTMLを解析できる。
Webスクレイピングの流れ
  • ChromeスクレイピングするWebサイトを開く。
  • Chromeデベロッパーツール(F12キー押下)を開く。
  • HTMLの構造を確認し、どんな条件で必要な要素を取り出せるか確認する。
  • BeautifulSoupで必要な情報を取得する。
参考にしたサイト

こちらのサイトを参考にさせていただいた。
BeautifulSoupやChromeデベロッパーツールの使い方が非常にわかりやすく書かれている。
tonari-it.com

実装例

食べログで、名古屋のラーメン屋の基本情報(店名、ランキング、総合評価点、最寄り駅、URL)と個別評価(ユーザ名、評価点)をスクレイピングし、csvに出力するコードを実装しました。
出力イメージはこんな感じです。

基本情報(店名、ランキング、総合評価点、最寄り駅、URL)

restaurant_name,tabelog_rank,tabelog_rating,nearest_station,url
らぁ麺 紫陽花,1,3.92,六番町駅,https://tabelog.com/aichi/A2301/A230112/23055953/
からみそラーメン ふくろう 本店,2,3.75,上飯田駅,https://tabelog.com/aichi/A2301/A230110/23050032/
らーめん奏,3,3.69,吹上駅,https://tabelog.com/aichi/A2301/A230106/23056955/
...

個別評価(ユーザ名、評価点)

restaurant_name,user_name,rating
らぁ麺 紫陽花,ドラ1228,4.0
らぁ麺 紫陽花,のんきなカメ,4.8
らぁ麺 紫陽花,nesageman,3.8
...

github.com