Sub GetRequestSimple1()
Dim url As String
url = "https://page.auctions.yahoo.co.jp/jp/auction/q263905236?notice=mdrs"
Dim xh As New WinHttp.WinHttpRequest
xh.Open "GET", url, False
xh.send
Dim sCode As String
sCode = xh.Status
If sCode <> 200 Then
MsgBox "リクエストに失敗しました" & vbNewLine & sCode
End If
'htmlをDOMとして取得する。そのための変数を宣言。
Dim oHTml As New MSHTML.HTMLDocument
oHTml.body.innerHTML = xh.ResponseText 'htmlボディーをDOMとして取得
'//--- ここで躓いてます・・・。 -----//
Debug.Print oHTml.getElementsByClassName("ProductImage__inner")(0).outerHTML
End Sub
Sub test()
Dim url As String
url = "https://page.auctions.yahoo.co.jp/jp/auction/e349730483"
Dim xh As New WinHttp.WinHttpRequest
xh.Open "GET", url, False
xh.send
Dim sCode As String
sCode = xh.Status
If sCode <> 200 Then
MsgBox "リクエストに失敗しました" & vbNewLine & sCode
End If
'htmlをDOMとして取得する。そのための変数を宣言。
Dim oHTml As New MSHTML.HTMLDocument
oHTml.body.innerHTML = xh.ResponseText 'htmlボディーをDOMとして取得
Dim st, moto As String
Dim pElem As MSHTML.HTMLParaElement
For Each pElem In oHTml.getElementsByClassName("ProductImage__inner")
st = pElem.innerHTML
Debug.Print Mid(st, InStr(st, "https"), InStr(Mid(st, InStr(st, "https")), " wi") - 2)
Next
End Sub
Sub test_ogawa()
Dim url As String
url = "https://page.auctions.yahoo.co.jp/jp/auction/e349730483"
Dim xh As New WinHttp.WinHttpRequest
xh.Open "GET", url, False
xh.send
Dim sCode As String
sCode = xh.Status
If sCode <> 200 Then
MsgBox "リクエストに失敗しました" & vbNewLine & sCode
End If
Dim oHTml As New MSHTML.HTMLDocument
oHTml.body.innerHTML = xh.ResponseText
Dim div As MSHTML.HTMLDivElement
For Each div In oHTml.getElementsByClassName("ProductImage__inner")
Debug.Print div.getElementsByTagName("img")(0).src '←これはまあ普通
' Debug.Print div.ChildNodes(0).src '←こちらのほうがさらにシンプル
Next
End Sub
Sub test()
> Dim url As String
> url = "https://page.auctions.yahoo.co.jp/jp/auction/e349730483"
>
> Dim xh As New WinHttp.WinHttpRequest
> xh.Open "GET", url, False
> xh.send
>
> Dim sCode As String
> sCode = xh.Status
> If sCode <> 200 Then
> MsgBox "リクエストに失敗しました" & vbNewLine & sCode
> End If
>
> 'htmlをDOMとして取得する。そのための変数を宣言。
> Dim oHTml As New MSHTML.HTMLDocument
> oHTml.body.innerHTML = xh.ResponseText 'htmlボディーをDOMとして取得
>
> Dim st, moto As String
> Dim pElem As MSHTML.HTMLParaElement
>
> For Each pElem In oHTml.getElementsByClassName("ProductImage__inner")
> st = pElem.innerHTML
> Debug.Print Mid(st, InStr(st, "https"), InStr(Mid(st, InStr(st, "https")), " wi") - 2)
> Next
> End Sub
ざきさんさんの投稿
(投稿ID: 4460) 添付ファイルのダウンロード権限がありません
クラス名で取得してその中にある画像のURLを取得したいです。
なぜこの書き方で取得できないのかわかりません・・・。
助けてください。
zipファイルでも添付します。
ざきさんさんのコメント
(コメントID: 6146)
無理矢理な感じ満載ですが、回答待ってる間に一応できました。
どうでしょうか??もっとスマートな書き方ありますかね?
小川 慶一さんのコメント
(コメントID: 6147)
楽しまれていますね (^^*
「シンプルに」ということでしたら、これだけ規則性の高いコンテンツなら、以下のサンプルの形までスッキリできるかと思います。
> 下記の続きです。
> 無理矢理な感じ満載ですが、回答待ってる間に一応できました。
> どうでしょうか??もっとスマートな書き方ありますかね?
>
>
>
ざきさんさんのコメント
(コメントID: 6149) 添付ファイルのダウンロード権限がありません
サンプルありがとうございました。
家に帰って色々カスタマイズしようとしたら、xh.sendのところで「サーバーに接続できませんでした」というエラーメッセージが出るようになりました。
違うURLでxh.sendすると正常に動きます。
なぜでしょうか??ヤフオクが僕を拒否してるのでしょうか?
添付ファイルにて詳細を送ります。
> ざきさんさん:
>
> 楽しまれていますね (^^*
>
> 「シンプルに」ということでしたら、これだけ規則性の高いコンテンツなら、以下のサンプルの形までスッキリできるかと思います。
小川 慶一さんのコメント
(コメントID: 6150)
> 違うURLでxh.sendすると正常に動きます。
> なぜでしょうか??ヤフオクが僕を拒否してるのでしょうか?
> 添付ファイルにて詳細を送ります。
ちょっと分からないです。
そのエラーメッセージが出るケースはいろいろ考えられますし。
とりあえず報告すると、今いただいたファイルで編集なしでマクロを実行してみたところ、無事に動きました。
僕が示した内容のままでテストするとどうでしょうか。やはり動かないでしょうか。
> 小川慶一さん:
> サンプルありがとうございました。
> 家に帰って色々カスタマイズしようとしたら、xh.sendのところで「サーバーに接続できませんでした」というエラーメッセージが出るようになりました。
> 違うURLでxh.sendすると正常に動きます。
> なぜでしょうか??ヤフオクが僕を拒否してるのでしょうか?
> 添付ファイルにて詳細を送ります。
>
>
> > ざきさんさん:
> >
> > 楽しまれていますね (^^*
> >
> > 「シンプルに」ということでしたら、これだけ規則性の高いコンテンツなら、以下のサンプルの形までスッキリできるかと思います。
>
小川 慶一さんのコメント
(コメントID: 6151)
追記です。
僕が昨日お送りしたマクロも動作しました。
いただいたマクロでURLを指定する部分を以下に書き換えてもやはり動作しました。
url = "https://page.auctions.yahoo.co.jp/jp/auction/e349730483"
よろしくお願いいたします。
> 小川慶一さん:
> サンプルありがとうございました。
> 家に帰って色々カスタマイズしようとしたら、xh.sendのところで「サーバーに接続できませんでした」というエラーメッセージが出るようになりました。
> 違うURLでxh.sendすると正常に動きます。
> なぜでしょうか??ヤフオクが僕を拒否してるのでしょうか?
> 添付ファイルにて詳細を送ります。
>
>
> > ざきさんさん:
> >
> > 楽しまれていますね (^^*
> >
> > 「シンプルに」ということでしたら、これだけ規則性の高いコンテンツなら、以下のサンプルの形までスッキリできるかと思います。
>
受講生さんのコメント
(コメントID: 6152)
小川先生のかいたマクロでもヤフオクのURLだと、xh.sendのところでエラーが出ます。
しかし、ヤフオク以外のURLにすると(この質問ページ)xh.sendは正常に通ります。ちなみにwinHTTP 5.1を使わずに、ieを使ってヤフオクを実行してみたら正常に動きました。
先生のパソコンはヤフオクにアクセスしても正常に動くみたいなので、自分の家のパソコンだけ、winHTTP5.1でヤフオクのアクセスができないみたいです。
一度、会社のパソコンで実験してみます。
当分家のパソコンでは、ieを使って使用します。
ありがとうございました。
> ざきさんさん:
>
> 追記です。
> 僕が昨日お送りしたマクロも動作しました。
>
> いただいたマクロでURLを指定する部分を以下に書き換えてもやはり動作しました。
> url = "https://page.auctions.yahoo.co.jp/jp/auction/e349730483"
>
> よろしくお願いいたします。
>
>
>
> > 小川慶一さん:
> > サンプルありがとうございました。
> > 家に帰って色々カスタマイズしようとしたら、xh.sendのところで「サーバーに接続できませんでした」というエラーメッセージが出るようになりました。
> > 違うURLでxh.sendすると正常に動きます。
> > なぜでしょうか??ヤフオクが僕を拒否してるのでしょうか?
> > 添付ファイルにて詳細を送ります。
> >
> >
> > > ざきさんさん:
> > >
> > > 楽しまれていますね (^^*
> > >
> > > 「シンプルに」ということでしたら、これだけ規則性の高いコンテンツなら、以下のサンプルの形までスッキリできるかと思います。
> >
小川 慶一さんのコメント
(コメントID: 6154)
アクセス拒否されているのかもしれませんね。
僕も、Amazonのページ解析するスクリプトの動作確認していて拒絶されることはあります。
長期的に継続することあまりありませんが。
>ちなみにwinHTTP 5.1を使わずに、ieを使ってヤフオクを実行してみたら正常に動きました。
経由するプログラムが違うから別物と思われているのでしょう。
例えて言えば、Firefoxからのアクセスは拒絶されたが、IEでの接続は(たとえ同じipアドレスからのアクセスであっても)サーバ側に別物とみなされていて問題なくコンテンツを取得できるとか、そんなところかと。
> 小川慶一さん:
> 小川先生のかいたマクロでもヤフオクのURLだと、xh.sendのところでエラーが出ます。
> しかし、ヤフオク以外のURLにすると(この質問ページ)xh.sendは正常に通ります。ちなみにwinHTTP 5.1を使わずに、ieを使ってヤフオクを実行してみたら正常に動きました。
> 先生のパソコンはヤフオクにアクセスしても正常に動くみたいなので、自分の家のパソコンだけ、winHTTP5.1でヤフオクのアクセスができないみたいです。
> 一度、会社のパソコンで実験してみます。
> 当分家のパソコンでは、ieを使って使用します。
> ありがとうございました。
>
>
> > ざきさんさん:
> >
> > 追記です。
> > 僕が昨日お送りしたマクロも動作しました。
> >
> > いただいたマクロでURLを指定する部分を以下に書き換えてもやはり動作しました。
> > url = "https://page.auctions.yahoo.co.jp/jp/auction/e349730483"
> >
> > よろしくお願いいたします。
> >
> >
> >
> > > 小川慶一さん:
> > > サンプルありがとうございました。
> > > 家に帰って色々カスタマイズしようとしたら、xh.sendのところで「サーバーに接続できませんでした」というエラーメッセージが出るようになりました。
> > > 違うURLでxh.sendすると正常に動きます。
> > > なぜでしょうか??ヤフオクが僕を拒否してるのでしょうか?
> > > 添付ファイルにて詳細を送ります。
> > >
> > >
> > > > ざきさんさん:
> > > >
> > > > 楽しまれていますね (^^*
> > > >
> > > > 「シンプルに」ということでしたら、これだけ規則性の高いコンテンツなら、以下のサンプルの形までスッキリできるかと思います。
> > >