highlighter

Donnerstag, 12. Juni 2025

dummy

this is a dummy post. I'll delete it later.

Sonntag, 9. Februar 2025

瀧山大滝・熊野岳(蔵王山) 2025/2/8(sat) - 2025/2/9(sun)

  Club Tourismさんでの参加です. 東北地方の山形県や岩手県辺りになつてきますと個人で車で往くには往復の時間が大分えらい事になりますので新幹線移動が前提となつてきます.

  一日目は瀧山大滝(りゅうざんおおたき)での氷瀑見学を行いました, 目的の滝迄はおおよそ二時間の歩行時間が目安で堰堤を二つ越えると間もなく到着します, 当日は一瞬だけ晴れて青空が覗くも矢張り天気予報通りほぼ一日雪模様でした, また, 最奥の滝迄登つていたのは私達団体を除きますと現地に住まわれている男性御一方のみでしたので半分以上ラッセルで進む形でした. ですが肝心の薄青色の美麗な氷柱が見られて大変良かつたです.

  ガイドさんの説明ままですが, 東北の蔵王近辺に措ける氷柱は珍しいそうです. 理由は二点あり火山活動で出来た山が多いため地下から上がつて来る水が温かいので凍り難いと謂ふのが理由の一つ, もう一点は凍つても深雪に埋もれて隠れてしまうとの事でした.

  宿泊は天童市街中心付近に在りますホテルビューくろださんで一泊しています, 夕・朝食がとても美味で芋煮が最高でしたし全体的にボリュームが凄いです, 朝から焼売にロールキャベツとか. 天童市と謂えば将棋の駒で有名ですので何時かは街観光でも訪れたく思ひます.

  二日目が今ツアーのメインである熊野岳(蔵王山), 登りでは蔵王ライザスキー場でリフトを二つ乗りスキー場の最上部から登山を開始しています. 本来は熊野岳山頂迄登る予定でしたが素晴らしい寒波が丁度訪れておりましたので稜線付近は地吹雪&強風で素人目に見上げても洒落にならないよねと謂つた具合でしたので, ガイドさん判断により七八合目近辺で折り返す結果となつております. 樹氷(スノーモンスター)は一応見られましたので樹氷見学登山との目標は達成されたと思ひます, 下りはリフトへは乗らずにゲレンデ横の樹林帯を通り下迄下りました.

  下山後はホテルルーセントタカミヤさんにて温泉に浸かり, 後帰路へ就きました.

  行き帰りに使う駅は共に山形駅予定ではあつたのですが雪が多過ぎて新幹線が山形側には行かぬという事で行きが仙台駅, 帰りは福島駅と謂う大分例外な形でした. ガイドさんやバス運転手さんは仕事とは謂え大変ですよね, 向かつている途中, 又は, 既に到着して待機しているところに別の駅に来てくれとなつて百キロ以上離れた場所へ急いで移動したりする訳ですから, ツアー様様です. 雪は好きですが多過ぎつてやつは困りもので.

  添乗員は奥泉さん(以前に奥穂のツアーでご一緒している), バスの運転手はトランスオーシャンバス株式会社のオオタさんで御座いました. クラツーでの東北山域ツアーではガイドが五十嵐さんの場合が多いとの事ですのでご利用されますとお会いする機会もあるのではないかと存じます.

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

Samstag, 25. Januar 2025

Extracting tags with BeautifulSoup4

  h2とh3の構成と内容だけ知りたい事がままあると思います.

  既にcmdやpowershell上でpythonコマンドが実行可能な状態である事だけが前提で, 下記の二行が追加で必要なコマンドです.

  • python -m pip install requests
  • python -m pip install beautifulsoup4

  以下は参考にいたしましたpython programming youtuberさんの動画です(使用モジュールは説明そのままです).
  youtube : 【PythonでWebスクレイピング】Beautiful Soupの使い方解説! 〜 初心者向け 〜 プログラミング入門
  動画を10分一寸のところ迄見れば後は自分で自在に使えるやうになる筈です.

  以下はソース, 適当なテキストファイルに記述して拡張子は.pyで保存します.

import requests
import sys
from bs4 import BeautifulSoup
import time

def main():
  soup = BeautifulSoup(requests.get(sys.argv[1]).text, 'html.parser')
  if None != soup.find('body'):
    for h2 in soup.find_all('h2', class_="hogepi_2"):
      time.sleep(1)
      if h2.string != None:
        print(f'{h2.string}')
      for h3 in soup.find_all('h3', class_="hogepi_3"):
        time.sleep(1)
        if h3.string != None:
          print(f'    {h3.string}')

if __name__ == '__main__':
  if len(sys.argv) < 2:
    sys.exit()
  main()

tag2 1

tag3 1

tag3 2

tag3 3

tag2 2

tag3 4

tag3 5

tag3 6

  で, 適当に自分の記事に掛けて結果をテキストファイルへ出力してみますと......私は普段見出しを"無視して書いている"のとblogの設定的な事もあるのか思つた通りの形ではありませんがそれとなく取得出来たやうです(正しく構成されたページだと綺麗に取得出来ました).
  
  h2の下にh3が居るので単純にh2の前でh1かbodyを見ればいけるか(?)と試したら駄目で, 個別ページのソース全体を確認したところ右側のサイドバーのウィジェットがh2で定義されていたのでその回数分ループが回り, h3も釣られて大量に回つていたのでした. classを適当に追加したら予期した形となりましためでたし......じゃないですねえ, 良い感じだけれどh3の1~3と4~6が綺麗に分かれていませんでした. h3が全て同じclassなのでどのh2配下なのか区別出来ないからしゃーない.
  

  ちょびつとhtmlの構成を覗きたい時用に.

import sys
import requests

class req():
  def __init__(self, url):
    self.r = requests.get(url)

  def r1(self):
    print(f'encoding:{self.r.encoding}, apparent_encoding:{self.r.apparent_encoding}, headers:{self.r.headers}')
    print(f'response_body:{self.r.content}')
    print(f'encoded_response_body:{self.r.text}')
  def r2(self):
    # unimplemented
    pass
  def r3(self):
    # unimplemented
    pass

def main(url):
  r = req(url)
  r.r1()

if __name__ == '__main__':
  if len(sys.argv) > 1:
    main(sys.argv[1])
  else:
    sys.exit()