Indeedの100位以内での自社求人の占有率をグラフ化するWebアプリ

Indeedという求人情報のアグリゲーションサイトがある。ここはSEOで相当強いサイトでかつ、使い勝手がよくユーザー数を伸ばしています。当初は無断に求人メディアを転載しているような立ち位置(見方による)だったのですが、今は完全にメディアと立場が逆転しつつあります。

応募者の多くがIndeed経由という形になりつつあり、さらにIndeed経由の応募者を獲得しようとメディアはIndeedの広告枠を日夜ビットしている。そんな中で、Indeedの中でどれだけ上位表示されることができるか(GoogleでのSEOのようなもの)が、メディアの中で重要視されつつある。つまりメディアの先、広告主の中でもIndeedのプレゼンスが高まっているということです。

今回は、「キーワード」「勤務地」「メディア」を入力し、POSTするとIndeedの100位以内の表示にどの程度その「メディア」の求人が掲載されているのかを、リアルタイムにグラフ出力するWebアプリケーションを作りました。

できたもの

必要なもの

  • Flask
  • BeautifulSoup
  • requests

実装について

アプリのファイル構成はこんな感じになっています。
flaskwork
|–main.py
|–requirements.txt
|–static
| |–bootstrap.css
| |–d3.v3.min.js
| |–indeedlogo.png
| |–loader.gif
|–templates
| |–base.html
| |–index.html(初期表示)
| |–result.html(結果表示)
|–Procfile

この中でもmain.pyにルーティングとBeautifulSoupでIndeedスクレイピングする役割を持たせてます。コードも少ない。

続きを読む

ドラマ視聴率をmatplotlibでグラフ化

過保護のカホコを視聴するのが毎週楽しみで見ています。主人公カホコの成長が毎回微笑ましく、少し泣ける内容になってると感じます。できれば自分が好きなドラマは高視聴率であって欲しいものの、実際どうなんだろう?ということで、今回はドラマの視聴率推移をグラフ化してみます。

やりたいこと

  1. 2017年7〜9月期のドラマ+「逃げ恥」の視聴率をDataFrame化
  2. matplotlibでグラフ化

用意するもの

Jupyter notebook
pandas
matplotlib

出来上がったもの

Jupyter NotebookのHTML
GitHub

1. 2017年7〜9月期のドラマ+「逃げ恥」の視聴率をDataFrame化

まず利用させていただいたページは下記二つ
https://artv.info/ar1707.html
https://artv.info/ar1610.html
こうしたTableデータからDataFrameを作るのは簡単。まずTableをコピーし、pandas.read_clipboard()するだけ。下の動画を参照してもらうとわかる通り、早い。スクレイピングは必要ないです。

あとは単純、7〜9月期のドラマ視聴率一覧DataFrameと逃げ恥DataFrameを結合して、csvに保存。

続きを読む

Indeedから取得した内容を、A3RTのProofreading APIに突っ込むとメディア毎にalertが何個でるのか調査

A3RTの中で「Proofreading API」というのをリクルートがだしている。文章の校正などに役立てる見立てだと思われます。また実用フェーズに入っているのかな?と思い興味を持ちました。

やりたいこと

  1. Indeedに掲載している求人情報をメディア毎に収集(20件ずつ)
  2. DataFrame化したあとに、Proofreading APIへ投げる
  3. メディア毎に集計してグラフ化

用意するもの

Jupyter notebook
pandas
json
requests
matplotlib
BeautifulSoup
tqdm
Proofreading APIのAPI KEY

できたもの

Jupyter NotebookのHTML
GitHub

1. Indeedに掲載している求人情報をメディア毎に収集(20件ずつ)

まずBeautifulSoupでIndeedから求人情報を抜きます。Indeedのhref属性を取得してリスト化する関数は以下です。ただ、今回もasciiのエンコードにハマってしまいました。

日本語URLでハマった時に参照した記事
http://qiita.com/mix/items/87d094414e46f857de45

続きを読む

セブンイレブンの住所をスクレイピング、GoogleMapAPIで緯度経度に変換して地図プロット

お盆に実家に帰ってもセブンイレブンはどこでもある。気になって調べると店舗数は15000以上、存在していない都道府県は沖縄だけのようです。今日はこのセブンイレブンの店舗を利用していきます。

やりたいこと

  1. セブンイレブンの住所情報をスクレイピング
  2. 住所情報をGoogleMapAPIで緯度経度へ変換
  3. Foliumで地図上にプロット

できるもの

用意するもの

Jupyter notebook
Folium
pandas
json
requests
matplotlib
BeautifulSoup
tqdm
GoogleMapのAPIアカウント

ライブラリ系は全てpipしてください。

つくっていく

1. セブンイレブンの住所情報をスクレイピング

コードみていただけるとわかるかと思うんですが、セブンの住所情報15000以上をインデックスしているサイトさんにアクセスしました。ループの間にスリープ入れてるんですが、実際にやってみるとすぐブロックくらいました(当たり前
ここからさらにUserAgent変えてみたりで全部取得を目指すこともできますが、500件くらいにしました。

続きを読む

[1964〜2016年]100m走シーズン記録変遷をグラフ化

ボルトがラストラン(100m x 4リレー)で足首をひねり失格。同じ年で頑張っているアスリートが次々と引退していく昨今で、少し物悲しさが残る結果になりましたね。今日は100m走を題材にPandas学習していきます。

やりたいこと

  1. 100m走シーズン記録のデータフレーム化
  2. 100m走シーズン記録のグラフ化
  3. (おまけ)100m走シーズン記録の動画を検索&インライン表示

できたもの

必要なもの

  • matplotlib
  • YouTubeAPIのアカウントKEY

1. 100m走シーズン記録のデータフレーム化


100m走が気になって、Wikipediaを読んでいたら100mのシーズン記録がtableで載ってました。こういった整形されたデータはデータフレームに変換しやすいので、やってみることにします。

続きを読む