s1-s1
(s1 s1)
1
お世話になっております。
気象庁のHPより東京地方の今日の天気を取得するロボットを作りたいと思っています。
https://www.jma.go.jp/bosai/forecast/#area_type=offices&area_code=130000
上記スクリーンショットの赤枠で囲っている部分を取得したいのですが、レコーディングでもテキストを取得アクティビティでも値を取得することができません。
・テキストを取得後にWriteLineにて、出力させても空白になります。
・「風」や「日中の最高気温」は取得できます。
なに見逃しがちなポイント等はございますでしょうか?
もしくは「晴れ 夕方 から くもり」のようにスペースがあるのが原因でしょうか。
Hey
Give a try with this secuence
Main.xaml (16.1 KB)
Regards
Yoichi
(Yoichi)
3
こんにちは
どのように指定して取得できないでしょうか?
表の構造が少々複雑ですので、適切なアンカーを指定するのと
あとセレクターとして、変動する部分はワイルドカード等で置き換える必要があるかと思います
(そうしないと、今日は取得できても明日は取得できなくなります)
以下実装例ですが、予報や日付が変化した際に正しくとれるかの検証は必要かと思います。
Sample20230205-1L.zip (8.2 KB)
s1-s1
(s1 s1)
4
Yoichi様
ご回答ありがとうございます。
ウェブレコーディングを使用してテキストの取得をしようとしています。
変動する部分はワイルドカードで置き換えをしている認識です。
ブラウザを開く→該当テキストを取得 の箇所までを抜粋したMain2.xamlを添付します。
可能でしたらご確認いただけますと幸いです。
Main2.xaml (19.1 KB)
Yoichi
(Yoichi)
5
こんにちは
確認しましたが、セレクターが異なる場所を指しているので、修正が必要です。
現時点のページですと
アンカー側はidx='2’を追加
"<webctrl aaname='日付 今*東京地方 天気 風 波 降水確率(%)*' tag='TABLE' idx='2' /><webctrl aaname='天気' tableRow='3' tag='TH' />"
ターゲット側もidx='2’を追加
"<webctrl tag='TD' idx='2' />"
で動作しました。
それぞれにセレクターがどこを指しているか、強調表示オプション等を使って確認すると良いかと思います。
なおAnchorBaseアクティビティは自由度が低いので、今ですとモダンデザインのテキスト取得を使い、複数のアンカーを指定したほうが安定するように思います。
s1-s1
(s1 s1)
6
Yoichi様
返信が遅くなり申し訳ありません。
アンカー側、ターゲット側ともにidx='2’を追加しましたが取得できませんでした。。。
(アクティビティのタイムアウトになります)
なお、このidxは何を指しているのでしょうか?
今回の場合ですと、なぜ’2’になるのでしょうか?