人生最悪の忘れ物

少し前に、『キャッシュがクリアされない云々』という質問をしたところ、
頂いた回答に色々リンクを貼っていただき、
コレまで勉強させていただきました。
そして、その中に『IEを使わずにHTMLを取得する』という記事があり、
コレは使えると思いました。

そして早速、サンプルコードも出ていたので、やってみました。
***************ここからです
Sub test001()

Dim httpReq As XMLHTTP60
Set httpReq = New XMLHTTP60

httpReq.Open "GET", "https://www.mizuhobank.co.jp/takarakuji/check/lo …
httpReq.Send

Do While httpReq.readyState < 4
DoEvents
Loop

Dim htmlDoc As Object
Set htmlDoc = New HTMLDocument

htmlDoc.write httpReq.responseText

Debug.Print httpReq.responseText ******************

Set htmlDoc = Nothing
Set httpReq = Nothing

End Sub
***************ここまでです

結果は出たのですが、
URLを貼り付けてchromeで見た結果と微妙に違うのです。
参考にしたサイトは、みずほ銀行のロト6の抽せん結果が出ているページですが、
取り込みのコードではその結果が出ていません。
コード内の*********を付けた部分が私が追加した箇所です。

長くなりましたが、
原因なり、訂正なりをして頂けると助かります。
また、ここを読めというリンクも在ると助かります。

なお、使おうとしているexcelは2003です。
これまた訳がありまして、コレしか使えません。
宜しくお願いします。

質問者からの補足コメント

  • <皆様へ>
    昨晩、考えていて、朝令暮改ですが、「諦めます」を撤回、
    折角なのでもう少し頑張ってみようと思い直しました。

    私はexcelvbaがなんとか書けてヒントがあれば変更まで出来る、
    というレベルです。
    よって、今回のwebからデータを取得するという件は全く無知の世界です。
    ただ、急ぐ必要もなく、時間はふんだんに在りますので、
    皆さんから教えていただければ、出来るところまでは頑張ってみようかなと。

    ということで、
    今回いただいた回答を咀嚼しながら頑張ってみます。
    また、次の質問をしたいと思いますので、
    引き続き宜しくお願いします。
    ここのスレは今暫くクローズせず、このままとさせていただきます。

      補足日時:2024/11/15 07:20
  • 全く邪道ですが、皆さんの回答を組み合わせながら、
    わからないなりに進んでいます。

    とりあえず、表示していただいたcsvアドレスを貼り付けて、
    中身がゲットできることを確認しました。

    問題は、このアドレスをどうやって取得するかですが、
    そこが分かりません。

    『ページのソースを見て、F12で』と在りますが、
    チンプンカンプンです。
    単純に診るだけで分かるのか、別のロジックが必要なのか。
    『CSVファイルをJavaScriptで取得して表示しています。』と在りますが。

    極端には、アドレスは連番でしょうから、
    ロト6に限ってなら推測できますが、
    ロト6以外にはどんな番号が使われているのか。

    出来ることなら、ここらへんを教えて頂けると嬉しいです。
    宜しくお願い致します。

    No.4の回答に寄せられた補足コメントです。 補足日時:2024/11/15 11:27
  • <皆様へ>
    お世話になりましたが、なんとか邪道ながら目的にたどり着けました。
    本格的に、私用に挑戦してみます。
    今後とも宜しくお願いいたします。

      補足日時:2024/11/15 13:08

A 回答 (7件)

抽選結果はHTMLファイルに書いてありません。

ブラウザでページのソースを表示すればわかります。

CSVファイルをJavaScriptで取得して表示しています。ブラウザの開発ツール(F12)で確認すればわかります。

https://www.mizuhobank.co.jp/retail/takarakuji/l …
https://www.mizuhobank.co.jp/retail/takarakuji/l …
https://www.mizuhobank.co.jp/retail/takarakuji/l …
この回答への補足あり
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
やはり簡単には取れないのですね、良く分かりました。
貼って頂いた結果、出来る方にはこんなに綺麗に取れるのですね。
言われていることが理解できません。諦めます。
お手間を掛けました。

お礼日時:2024/11/14 19:41

ブラウザでページのソースを表示するとは、ブラウザの表示領域を右クリックしたメニューの中に「ページのソース表示」があります。



ブラウザの開発ツール(F12)とは、ブラウザでキーボードのF12キーを押したら出てきます。

開発ツールを起動してからページを表示し、「ネットワーク」タブを見れば何をダウンロードしているかわかります。

Edge, Chrome, Firefox の中では Firefox の開発ツールが見やすいです。赤枠の項目を見ればわかると思います。

最新のファイル名は下記に記載されています。
https://www.mizuhobank.co.jp/takarakuji/apl/txt/ …

他の情報として下記もあります。
https://www.mizuhobank.co.jp/retail/takarakuji/l …
「IEを使わずHTMLを取得する」の回答画像7
    • good
    • 0

スクレイピングを行うならば、取得相手をよく調べましょう。



ご提示の場合ですと、指定の URL には必要な情報が含まれておらず、ページ内のスクリプトが別 URL から読み込んで表示していると推測します。
この場合の解決案としては

案1.
ActiveX 経由でIEブラウザを操作し、レンダリング結果から情報取得
IEは廃止されましたが、ActiveX 経由はまだ有効です
案2.
WebDriver 経由でブラウザを操作し、レンダリング結果から情報取得
案3.
ページ内レンダリング機能付きのクローラー製品を導入して情報取得
案4.
ページ内スクリプトを解析して別 URL を特定して情報取得

手軽さでいえば案4がお勧めです。

軽く見た限りですと、回答 No.4 にあるとおり CSV ファイルに必要な情報が含まれている様なので、その URL を特定して httpReq.Open しましょう。
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
少なくとも分かる方であれば出来る、
ということが分かりました。
今回は簡単そうで在ればやってみたいという感じで見てみましたが、
私のレベルで歯が立たないことが分かりました。
と言いながら、後ほど、勉強してみます。

お礼日時:2024/11/14 20:06

取り込んだソースコードを見て、</head>の上あたりに、


<script src="・・・・・"></script>が有る筈です。

・・・・・の部分は.jsで終るjavascriptファイルで、これを取り込まないと尾同じ表示にはなりません。

pcのブラウザでhpを開いて、右クリック⇒ページのソースを表示で、htmlソースが表示されるので、上の・・・・・の部分をクリックすればjavascriptソースが表示されます。

それを
htmlソースに入れ込めば動きます。

htmlソースのbodyかhead内に以下を書く。

<script>
表示されたjavascriptソースコードをコピペして入れる
</script>
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
皆さんから言われるとおり、よく分かりました。
本件は諦めるつもりですが、
具体的な作業内容、朧げなりに分かりますので、
後ほどやってみます。

お礼日時:2024/11/14 19:59

指定されたURLのHTMLソースには抽選結果が含まれていません。

抽選結果は別のファイルのJavaScriptを実行して埋め込んでいるようです。JavaScriptも取り込んで呼び出せるようにすれば抽選結果が表示されると思います。
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
了解です。
テクニックは分かりませんが、
兎に角、HTMLをゲットできても簡単に中身は取り出せないということですね。
私のレベルでは、コレ以上進めません。諦めます。

お礼日時:2024/11/14 19:32

IEは廃止されているのに何を今更と言う感じですよ。

    • good
    • 0

私には、その例のVBA?は解釈できません。

他のプログラム(サーバーサイド)は自己流でかじったことはあります。

通常、WEBサイトのHTMLとブラウザで表示しているHTMLは別物です。HTML内にうめこまれたプログラムによって動的に作成されることが多いからです。

サイトで自分が何かの変数入力(または選択)したものを使用してサーバー側プログラムは吐き出したのがブラウザのHTMLで。この時そのブラウザに対して出力された結果ですので、この例のプログラムで得られた結果とは異なるのは当然といえば当然ではありませんかね?

なお、私は専門家でもありませんので、回答が適切でないこともあるかもしれません。
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
了解です。
皆さんから同じことの回答があり、よく分かりました。
ダイナミックに中身が作られるのですね。

お礼日時:2024/11/14 19:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A