見出し画像

【Python🐍】スクレイピング練習 来年の祝日を取り出す!

こんにちは!
パソコンインストラクター歴12年目の
チサです。(*´∀`)

今日も
Python🐍
スクレイピングの練習をした話

を書きます。

今回は
来年の(令和5年)祝日🗓
スクレイピング
してみました!

スクレイピングしたサイトは
コチラ!

このページに
こんな部分あるんです!

この情報を
スクレイピングして
出力してみました!
(о´∀`о) 



今回はちょっとした
トラブル発生しました!
Σ(・ω・ノ)ノ!

のちほど
そのトラブルもご案内⁉️
しますので
お楽しみに🤗

まず!

先ほどのサイトのソースコードで
どんなclassやidが
設定されているのか
( ๑ㆆ ㆆ) Ⴑ゙~と

眺めていると…

SH_dt … 年月日
SH_str… 祝日名

のclassが設定されてました。

どっちの情報も
取り出したいけれど…

一気にやるのはキツいので🤣

とりあえず!
年月日の部分だけスクレイピング
することに♪

👇

import requests
from bs4 import BeautifulSoup

url = "http://www.benri.com/calendar/2023.html"

# ①レスポンスを受け取る
res = requests.get(url)

# ②レスポンスコードの確認
if res.status_code != 200:
    print(res.status_code)
    exit(1)  # プログラム終了させる

# ③読み込んだデータをスクレイピングできるように変換?
soup = BeautifulSoup(res.text, "html.parser")

# ④取り出したいクラスを指定
a_tags = soup.select(".SH_dt")
for a_tag in a_tags:
    print(a_tag.text)

これで祝日の年月日情報を
取り出せる!!

と思って動かしたのですが。。

ここで!

トラブル発生!😱

なんかね。。

謎の文字が出力されました
𐤔wʷ 🤣 𐤔w𐤔👇

数字の部分はわかるけど
aeみたいなの。。
何語なんでしょう??
(´・ω・`)?

これは…
どう見ても文字化け!と思い💦

ググってみたところ
コチラのページが役に立ちました👇

コチラのページを参考に…

BeautifulSoupに変換する時、
(③の部分)

.textじゃなくて

.content 

で、ためしたところ。。


上手く取り出せました!!
(∩´∀`)∩ワーイ

サイトによって
textでもよかったり
contentにしなきゃいけなかったり
いろいろなんでしょうか⁉️

これは
Pythonあるある?なのかな?
🤔

あとは
祝日名も取り出したいから
さっきのclass名

SH_str を使って
なんとかしようとしたのですが…

一体どうやれば
年月日と祝日名の組み合わせを
作れるのか? 
よくわからなかった…
((+_+))

そんなわけで。。

『2023年1月1日』が入っている

a_tagの中身を
じーーーと
あちこち眺めていたら

nextSibling

next_sibling
のところ。

なぜか?『元旦』という祝日名が
表示されている!!
( ☉_☉)

 

『元旦』の文字が!!

これはつかえそう!!

なので!
print文をこんな風に変えてみました。


a_tags = soup.select(".SH_dt")

for a_tag in a_tags:
  print(a_tag.text,a_tag.nextSibling.text)

 そしたら!
上手く出力できました!

最終完成コード✨はコチラ👇

import requests
from bs4 import BeautifulSoup

url = "http://www.benri.com/calendar/2023.html"

# ①レスポンスを受け取る
res = requests.get(url)

# ②レスポンスコードの確認
if res.status_code != 200:
    print(res.status_code)
    exit(1)  # プログラム終了させる

# ③読み込んだデータをスクレイピングできるように変換?
soup = BeautifulSoup(res.content, "html.parser")

# ④取り出したいクラスを指定
a_tags = soup.select(".SH_dt")
for a_tag in a_tags:
    print(a_tag.text, a_tag.nextSibling.text)

そんなわけで!

今回は
何やかんやありましたが
最後にはうまくスクレイピング🐍
できましたー!

ヾ(●´∇`●)ノ

トラブルはありましたが
なんとか
やりたいことができて
うれしかったです♪

少し前まで
ちんぷんかんぷんだった
スクレイピング🐍

なんだか
楽しくなってきました!

ヾ(●´∇`●)ノ

ではでは
またあした!
(´꒳`)/

2022年9月28日大安吉日🎉

10冊目の新刊📕
【必ずできる】Excel計算特訓ドリル
出版しました!
ヾ(o´∀`o)ノワァーィ♪

Excelが苦手な方は
ぜひ!このドリルで計算問題に
チャレンジしてみてください♪
(紙の📕もご用意してます)


【Amazonで販売中のKindle📕】

➊パソコンに関する📕 2冊

➋Kindle出版に関する📕 2冊

➌節約に関する📕 1冊

➍読書に関する📕 1冊

➎海外の方向けの📕 3冊

気になる本があれば
試し読みだけでも♪
(´▽`)

この記事が気に入ったらサポートをしてみませんか?