2つの質問をしたいと思います。
①URLをクリックして、その中身をオープンして、テキストを取得したいですが、方法を教えていただきたい。
②ブラウザでオープンしたCSVのリンクのraw dataのスクレイピング方法を教えていただきたい。
具体的には以下となります。
税関サイト(外国為替相場(課税価格の換算) : 税関 Japan Customs )の中に、
テキスト”最新の外国為替相場のCSVデータは、[こちら]中にある。”の[こちら]をクリックして、
ハイパーリンク(日付によって変わっていますが):https://www.customs.go.jp/tetsuzuki/kawase/csv/240811-240817.csv
その中のcsv raw data の米ドル為替レート(USD 151.84)取得したい。
extract data tableを使用したが、うまくスクレイピングできませんでした。
ご教示いただけますと幸いです。
Yoichi
(Yoichi)
2
こんにちは
いくつか方法が考えられますが、以下2案いかがでしょうか?
案1
1.当該ページに遷移
2.GetTextで対象のテキストをすべて取得(抽出モード等チューニングが必要かもしれません)
3.以下の正規表現で必要な値を抽出
System.Text.RegularExpressions.Regex.Match(yourString,"(?<=ドル,USD,)[\d.]+").value
案2
1.リンクの属性から対象のURLを特定
2.ファイルをURLからダウンロードアクティビティを用いて、対象をダウンロード
3.ダウンロードしたファイルをReadTextFileアクティビティで読み込み
4.以下の正規表現で対象を抽出
System.Text.RegularExpressions.Regex.Match(yourString,"(?<=ドル,USD,)[\d.]+").value
2 Likes
ご回答ありがとうございます!
「リンクの属性から対象のURLを特定」についてまだ質問したいところがあります。
●ゲットしたいURL:
https://www.customs.go.jp/tetsuzuki/kawase/csv/240811-240817.csv
●get attributeというactivityを使って、ドロップダウンリストから出てきたurl要素:
以下ようなやり方で目標URLに遷移してみましたが、上手くいかないようです。

よろしくお願いいたします。
Yoichi
(Yoichi)
5
こんにちは
StudioWebですね
上記では正しいURLになっているかわかりませんので、一旦変数に格納して内容が正しいか確認ください。
またStudioWebではファイルをURLからダウンロードアクティビティが使えないと思いますのでHTTPリクエストアクティビティを使用してください。その際日本語が正しく扱えないと思いますので、正規表現式は以下の方が良いかと思います。
System.Text.RegularExpressions.Regex.Match(yourString,"(?<=,USD,)[\d.]+").value
以下実装&実行例です
1 Like
ご回答ありがとうございます、完璧です!
無事に解決しました。
Yoichiさん、こんにちは。重ねての質問で恐縮です。
本日の為替情報を取得するために、スクリーンショットに示した赤い枠のURLにアクセスする必要があると考えています。
① 本日の日付(2024年8月8日)から、Web上の日付範囲(8月4日~8月10日)に対応するURLを特定して、遷移する方法について教えていただけますでしょうか。
② PDFページでのスクレイピングは、ブラウザ上で完結可能でしょうか、それともダウンロードして処理した方が良いでしょうか。
よろしくお願いします。
Yoichi
(Yoichi)
8
こんにちは
内容がタイトルから離れていっていますので、別トピックを上げた方が良いかと思います。
① 本日の日付(2024年8月8日)から、Web上の日付範囲(8月4日~8月10日)に対応するURLを特定して、遷移する方法について教えていただけますでしょうか。
当該日付から、月や当該週の日曜日、土曜日の日付は動的に生成できると思いますので、それを用いてセレクターを指定すれば良いかと思います。
② PDFページでのスクレイピングは、ブラウザ上で完結可能でしょうか、それともダウンロードして処理した方が良いでしょうか。
試してみないとわからないですね。StudioWebですと制約が多いので一筋縄ではいかないかもしれません。
1 Like