IPython Notebookで梅田のラーメン屋さんの統計情報を抽出するというハンズオンに行ってきました
2016/09/18
IPython Notebookで梅田のラーメン屋さんの情報をWebスクレイピングして抽出して統計情報にするというハンズオンに行ってきました。
環境構築はLinux Mint 17 MATE 64bit にIPython Notebookをインストールするをご参照ください。
※Mac、Windowsでの環境はWeb検索でお願いいたします。。。。。
ハンズオン本編
Webスクレイピングに必要なライブラリをインポートします
|
1 2 3 |
import scrapelib from bs4 import BeautifulSoup |
お店ごとの要素を配列にします
URLを見れば丸わかりですがとあるサイトから情報をとっています
|
1 2 3 4 5 |
s = scrapelib.Scraper(requests_per_minute=10) r = s.get('http://tabelog.com/osaka/A2701/A270101/rstLst/ramen/') soup = BeautifulSoup(r.text, "lxml") omises = soup.find_all("li", class_="js-cassette js-rstlst-cassete list-rst is-blocklink js-bookmark") |
お店情報の要素配列をループして欲しい情報だけの配列にします
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
for omise in omises: omise_tsuika = {} namae = omise.find("a", class_="list-rst__rst-name-target js-click-rdlog") omise_tsuika["name"] = namae.string point_strong = omise.find_all("span", class_="list-rst__rating-val tb-rating__val tb-rating__val--strong") if len(point_strong) > 0: if(point_strong[0].string != "-"): omise_tsuika["point_gokei"] = float(point_strong[0].string) comment = omise.find("em",class_="list-rst__rvw-count-num") if(comment.string != "-"): omise_tsuika["comment"] = int(comment.string) data.append(omise_tsuika) |
データ配列を見てみます
|
1 2 |
print(data) |
こんなデータが取れました。
- comment : コメント数
- name : 店名
- point_gokei : 評価点

統計分析に必要なライブラリをインポートします
|
1 2 3 4 5 6 |
%matplotlib inline import matplotlib.pyplot as plt import numpy as np from pandas import Series,DataFrame import pandas as pd |
データフレームを作成します
|
1 2 3 4 |
df = DataFrame(data, columns=['name', 'point_gokei','comment']) |
要約統計量を計算します
|
1 2 |
df.describe() |

相関係数を計算します
|
1 2 |
df.point_gokei.corr(df.comment) |
0.54091975491834943
散布図を出力します
|
1 2 |
plt.scatter(df.comment,df.point_gokei) |

面白い!
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
SendGrid(sendgrid_python)でメール送信してイベントの情報からメール本文をたどれるようにしておく
動的に生成するメールで実際にどんな本文が送信されたかを記録しておきたいときもある …
-
-
VUI and IoT device(Alexa Day 2019でのブログ)
以下は、気になったことのメモとか感想を書いています。 登壇者、発表者、主催企業な …
-
-
Pepperで撮影した写真をAmazon Rekognitionで分析してその結果をPepperがしゃべる ~(2)Pepper編~
Pepperで撮影した写真をAmazon Rekognitionで分析してその結 …
-
-
Pepper 開発 ワークショップ初級~中級~番外編に1日で一気に参加した
Pepperの開発方法が知りたかったので、Pepperアトリエ秋葉原 with …
-
-
久しぶりにMonotaROさんの話しを聞いて興奮した「MonotaRO Tech Talk #6 (大阪梅田オフィスオープン記念)」
エンジニア人生というか、普通に仕事に対する考え方とか、自分に大きな影響を与えてく …
-
-
「JAWS-UG 名古屋 AWS Demo-1グランプリ」を開催しました
「JAWS-UG 名古屋 AWS Demo-1グランプリ」を開催しました! 「開 …
-
-
走った!しゃべった!呑んだ!JAWS DAYS 2016 re:cap 〜JAWS-UG大阪&関西女子会 特別合同企画〜
先日のJAWS DAYS 2016 re:cap 〜JAWS-UG大阪&関西女子 …
-
-
JAWS SONIC 2020 & MIDNIGHT JAWS 2020 の深夜のパワポカラオケに挑戦しました
2020/9/12(土) 16:50 ~ 2020/9/13(日) 17:20( …
-
-
「Serverless Meetup Osaka #01:begin」に参加しました
2024/5/25に開催の「Serverless Meetup Osaka #0 …
-
-
「gusuku Meetup OSAKA Vol.1」に参加させていただきました
前回のkinotne Cafeの懇親会でふと言った「gusuku Meetupっ …
