pythonでたべろぐをスクレイピングしCSVに出力


はじめに

グノシーの福島良典さんの「センスのいらない経営学」を読みました。

データ分析と機械学習の重要さについてわかりやすく書かれていました。
さらに、グノシーのターゲティング、ユーザー最適化がどのように、どれくらいの労力をかけて行われているか書かれていました。

インターンで1か月ほどプログラミングから離れていたのですが、グルメ系キュレーションサイトを作ることをゴールに勉強することしました。

短期目標:簡易キュレーションサイト作成
最終目標:ぐるなびを超えるキュレーションサイト。時間コストをかけずに店を選べるように、レコマンド機能

本記事の目標:食べログをスクレイピングして店名とURLをSCV出力する

メモ兼日記として綴っていきます

やったこと

  • URLからHTMLの取得
  • HTMLから特定の情報を抜きだす
  • タグやクラスを指定して抜き出す方法
  • 正規表現を用いて欲しい要素を抜き出す

コード

first.py

import csv
import requests
from bs4 import BeautifulSoup
import re

urlName = "https://tabelog.com/osaka/A2701/A270103/rstLst/?SrtT=rt&Srt=D&sort_mode=1"
dataHTML = requests.get(urlName)

soup = BeautifulSoup(dataHTML.content, "html.parser")

elems = soup.select('a.list-rst__rst-name-target.cpy-rst-name')
#data = elems.text

with open(r'C:\Users\daisuke\Desktop\python\first.csv', 'w') as f:
    for i in elems:
        url = re.search(r'"http.*/"', str(i))
        url = re.sub(r'"', '',  str(url.group()))

        name = re.search(r'target="_blank">.*</a>', str(i))
        name = re.sub(r'target="_blank">', '',  str(name.group()))
        name = re.sub(r'</a>', '',  name)

        print(url)
        print(name)

        writer = csv.writer(f)
        writer.writerow([name,url])

今後やりたいこと

1時間程度でスクレイピングが出来てしまった。
ひさびさにコードを書いたけどスクレイピングってこんなに簡単だったのか‥‥

  • Djangoでhelloworld
  • Djangoでスクレイピング結果をDBに格納
  • DBから情報取得ー表示
  • 各グルメメディアから取得した情報を整理して人気店ランキングを作る
  • そのために、機械学習を絡める