新着記事一覧

転職エージェント

キャリア形成・転職 仕事・キャリア

2026/10/20

【40代の転職】転職エージェントの選び方

転職活動を始めるとき、利用する人も多い「転職サイト」。 転職サイトに登録していると、様々な転職エージェントからスカウトや連絡があります。 私も今回の転職活動では、複数の転職サイトに登録し、その中でスカウトを送ってくれたいくつかの転職エージェントの担当者と実際に話をしました。 そこで感じたのが、「転職エージェントなら、どこでも同じというわけではない」ということです。 求人の紹介方法も違えば、書類添削や面接対策などのサポート内容も違います。 そして何より、担当者によって熱量や相性がかなり違うと感じました。 今 ...

続きを読む

ポケモン 遊び・趣味

2026/10/20

【ポケモン】ポケモンGo リアルイベントの醍醐味

ポケモンGOのリアルイベントに参加してみて、改めて感じたことがあります。 それは、「ポケモンGOって、こんなに人とつながれるゲームだったんだ!」ということ。 普段もポケモンGOをプレイしていますが、家の近所や通勤途中で遊んでいるときは、一人(もしくは子供と)で黙々とポケモンを捕まえています。 知らない人に話しかけることも、ほとんどありません。 ところが、リアルイベントになると、それがちょっと変わります。 そこには、同じようにポケモンが好きな人が全国、そして世界中から集まっている。 「ポケモンが好き」という ...

続きを読む

キャリア形成・転職 仕事・キャリア

2026/10/20

【40代の転職】転職活動のスケジュールと進め方

海外営業からデジタルマーケティングへキャリアチェンジし、やりたい仕事に手応えを感じていたものの、組織変更によってデジタルマーケティングの仕事そのものがなくなってしまったことが、転職を考える大きなきっかけでした。 今回は、その後の転職活動のスケジュールと、実際にどのように転職活動を進めたのかを書いてみたいと思います。 結果的には、3月に本格的に転職活動を始め、4月に転職先を決定、4月22日を最終出社日として、5月は少しゆっくり過ごし、6月から新しい会社で働き始めました。 これから転職を考えている方の参考にな ...

続きを読む

ポケモン 遊び・趣味

2026/10/18

【ポケモン】Pokémon GO Fest 2026:東京!5月のリアルイベントの服装と持ち物まとめ

5月に開催されたPokémon GO Fest 東京に、小学2年生の息子と一緒に参加してきました!リアルイベントは初参加です! 今回が初めてのリアルイベント参加。 参加する前は、 「5月ならそこまで暑くないかな?」 「飲み物はどれくらい持っていけばいい?」 「スマホの充電は足りる?」 など、いろいろと気になることがありました。 実際に参加してみると、ポケモンGOのリアルイベントならではの準備がかなり重要! 特に、たくさんの人が集まるイベントなので、飲み物やモバイルバッテリーなどは「ちょっと多いかな?」くら ...

続きを読む

キャリア形成・転職 仕事・キャリア

2026/10/20

【40代の転職】転職のきっかけ

Haruは41歳で転職をしました。この記事では、40代の転職のきっかけをお伝えしようと思います。 なぜ転職を決めたのか 「なぜ転職したの?」 転職すると、よく聞かれる質問です。 私の場合、突然「今の会社が嫌になったから」というわけではありません。むしろ、これまでの会社で自分なりにやりたいことを見つけ、勉強して、部署異動まで実現させて、少しずつキャリアを変えてきました。 それでも最終的に転職を決めたのは、「この会社にいても、これ以上自分がやりたい方向には進めない」と思う出来事があったからです。 今回は、私が ...

続きを読む

ポケモン 遊び・趣味

2026/10/11

【ポケモン】豊橋ポケモン天文台に行ってきた話

三連休の土曜日、子どもたちと一緒にポケモン天文台へ行ってきました!ポケモンと宇宙が組み合わさった施設ということで、子どもたちは行く前から楽しみにしていました。今回は、実際に訪れてみて感じたことを中心に、アクセスや駐車場、混雑状況、館内の見どころ、グッズ購入までまとめてみます。(ネタばれしない範囲で) ポケモン天文台ってどんなところ? ポケモン天文台は、宇宙や星について楽しく学べる、ポケモン好きの子どもにはたまらないスポット。単に展示を見るだけではなく、ポケモンと一緒に太陽系や星、隕石などについて学べるので ...

続きを読む

Python 仕事・キャリア

2026/10/10

【Python】Pythonでの自然言語処理(日本語)

こちらの記事では、自然言語処理についてまとめています。 自然言語処理とは? 自然言語とは、日本語や英語のような自然発生的に生まれた言語です。日常的に使用している自然言語について、言葉が持つ意味を解析し処理します。活用事例としては、チャットボット、音声認識AI、文字認識(手書き文字をカメラが認識し文字データへと変換する技術)、検索エンジン、翻訳、感情分析、文章要約などがあります。 文章の意味を機械に理解させるには、単語分割を行う必要があります。手法は主に2つあります。 1.形態素解析形態素とは意味を持つ最小 ...

続きを読む

Python 仕事・キャリア

【Python】保活で活用してみた

こんにちは、Haruです! 育休中にPythonというプログラミング言語を勉強中です。

元々は仕事の業務効率化で使いたく(時短なので残業せずに帰りたいため)Pythonを勉強し始めたのですが、日常生活のちょっとした情報収集にも使えました。

今回は保活での活用法を紹介したいと思います。

Haru

そろそろ保活の時期。上の子の転園も検討しようかな。
私の住んでる◯区にけっこう保育園とこども園あるけど、市のHPからリンク全部クリックしてページ遷移して情報確認するのめんどくさーい!!

こういう時こそスクレイピングですよ。
私でコードを書いて実行しなさい。1発でCSVファイルにして出力してあげますよ。

Python先生
Haru

まじですか!!あなたは神ですか!!

というわけでいってみましょう!

スクレイピングとは?

スクレイピングは「こする」「かき集める」といった意味を持つ「Scrape」に由来する用語で、Webやデータベースを広く探って「データを抽出する手法」のことです。

HaruはPythonというプログラミング言語の「Beautiful Soup」というライブラリを使って今回スクレイピングをして保活情報収集を効率的に行いました。

Beautiful SoupとはHTMLファイルやXMLファイルからデータを抽出するためのPythonライブラリです。

robots.txtの確認

スクレイピングをするにあたって必ずやらなければいけないのが、スクレイピングするサイトのrobots.txtの確認です。
robots.txtとは、サイトを巡回するクローラーの動作をコントロールするために記述されたテキストファイルのことで、スクレイピングをしたいサイトのURLの後ろに/robots.txtをつけると確認することができます。

例えば以前仕事で担当していたフィリピン、某サイトはこんな感じになっています。

Disallowがたくさんです。このサイト内のこのディレクトリではスクレイピングはしてくれるな!!という指定がずらっと記載されています。

そしてHaruが今回スクレイピングしたいサイトのrobots.txtを見てみると、以下のようでした。

ふぬ、特に記載はなくスクレイピングを拒否されているURLはなさそう。では有難く情報収集させて頂きましょう。

書いたコード

#必要なライブラリのインポート
import requests
from bs4 import BeautifulSoup
import urllib
import time
import pandas as pd

# webページを取得して解析する
load_url = "ここに解析したいURLを入れました"
html = requests.get(load_url)
soup = BeautifulSoup(html.text, "html.parser")

#取得したい要素の空リストを作成する
links = []
names = []
divisions = []
categories = []
places = []
tels = []

# 全部の区のclassで検索し、その中の全ての"a"タグを検索して表示する
# 施設名、リンクを絶対URLで表示する
for facilities in soup.find_all(class_="facilities"):
    for title in facilities.find_all("a"):
        names.append(title.string)
        links.append(urllib.parse.urljoin(load_url, title.get("href")))

# 地域, 分類, 所在地, 電話情報をtdタグ、class名より検索し、空リストに格納していく
    for division, category, place, tel in zip(facilities.find_all('td', class_="division"),
                                              facilities.find_all('td', class_="category"),
                                              facilities.find_all('td', class_="place"),
                                              facilities.find_all('td', class_="tel")):
        divisions.append(division.string)
        categories.append(category.string)
        places.append(place.string)
        tels.append(tel.string)

# DataFrameに保存
df = pd.DataFrame({"Name":names, "Division":divisions, "Category":categories, "Place":places, "Tel":tels, "Link":links})

# テーブルを指定
find_conditions = [
    {"class":"basicInfo wide"},
    {"class":"basicInfo narrow"},
    {"class":"detailedInfo"}
]

for ix, link_url in enumerate(df["Link"]):
    html = requests.get(link_url)
    soup = BeautifulSoup(html.text, "html.parser")

# 1回アクセスしたので1秒待つ
    time.sleep(1)

# テーブル内の要素を取得する
    for condition in find_conditions:
        table = soup.find("table", condition)
        try:
            for column, value in zip(table.find_all("th"), table.find_all("td")):
                if not column.text in df.columns:
                    df[column.text] = ''
                df.at[ix, column.text] = value.text
        except AttributeError:
                pass

# 整形する
for column in df.columns:
    df[column] = df[column].str.replace(" ", "")
    df[column] = df[column].str.replace("\t", "")
    df[column] = df[column].str.replace("\n", "")

# CSVファイルに出力する
df.to_csv("kindergartens.csv", encoding="utf-8-sig")

出力結果

上のコードを書いて実行すると、あら素敵!一覧リストになって出力されました!(個人情報保護のため青でマスキングしています)
私はこのファイルで区・地域及び保育標準時間欄でソートをして、候補園を絞り込みました。

まとめ

本当にPython便利です!
一回コードを書いてしまえば、大体パターンは一緒なので少し修正するだけで使いまわすことができます。

せっかく勉強したPython。仕事だけでなく日常生活にもドンドン使っていきたいと思います。

  • この記事を書いた人

Haru

会社員。育休2回取得、40代で転職。
職種はデジタルマーケティング。
ポケモン、スノボ、IT系の学び、キャリア、育児について発信していきます。

-Python, 仕事・キャリア
-, ,