前提・実現したいこと
VBAでスクレイピングツールを作成しています。
下記ページの「SIZE GUIDE」という項目をクリックしたいのですが、なぜか「.Click」が効きません。
https://store.moncler.com/en-nl/short-outerwear_cod6630340695939643.html#dept=EU_View_All_Outerwear_Men_SS
(商品画像の右側、画面右端の「SIZE GUIDE」)
なお、取得したいデータは下記のとおりです。
「SIZE GUIDE」クリック→開いたページの「Item Measurements:」を取得
こちらは、元々は1年前に作成したコードで、1年前~数日前までは問題なく動作していました。
数日前になって急にクリックできなくなり、
クリックできない→ページが開かない→目的のデータが見つからないということで、
その後の処理でエラーが出るようになってしまいました。
HTMLを確認しても、正常に動作していたときと変わった点は見られません。
なぜ「.Click」が効かないのか、
また、「.Click」で対応ができない場合、何か代替の手段はあるか等、
もし何かお分かりになることがありましたら教えていただきたいです。
(うっすらとですが、IEを使っているせいでは?と疑っているのですが、諸事情によりSelenium等の使用は難しいです……)
処理する箇所のHTMLソースコード
<div class="item__size-select-and-guide__guide mesmerize-size-guide-wrapper size-guide-visible" data-sku="0400583397304" data-abtest-button-label="What is my size?"> <script src="https://widget.measmerize.com/embed" async="" data-meas-embed="true" data-brand-id="a8e9f7de-d443-4725-9d96-7480ae609f29" data-garment-code="6630340695939643" data-meas-initialised="1612104371985"></script> <!--このbuttonをクリックしたい--> <button data-size-guide-link="6630340695939643"> <span class="icon"></span> <span class="text">Size Guide</span> <span class="value"></span> </button> </div>
該当のソースコード
Sub test() Dim ie As InternetExplorer Dim objTag As Object Set ie = New InternetExplorer ie.Visible = True ie.navigate "https://store.moncler.com/en-nl/short-outerwear_cod6630340695939643.html#dept=EU_View_All_Outerwear_Men_SS" Do While ie.Busy Or ie.readyState <> 4 DoEvents Loop 'ページ全体にbuttonタグが多数あるため、For Eachで対象のbuttonを探している For Each objTag In ie.document.getElementsByTagName("button") If InStr(objTag.outerHTML, "data-size-guide-link") > 0 Then objTag.Click ' Wait (300) Exit For End If Next End Sub
試したこと
-
ページ全体でbuttonが多数あるが、他のbuttonはクリックできるのか?と思い、試したところ、他のbuttonはクリックできる。目的のbuttonだけクリックできない。
-
66番目に出てくるbuttonであることが分かったため、
ie.document.getElementsByTagName("button")(66).Clickを試したが状況変わらず。
- Firefoxの要素の調査を眺めていると、該当箇所クリック時に下記URLにアクセス?していることが判明。
ただ、取得したいのは「Item Measurements:」の項目で、下記URLではその項目が空欄になっている。「Item Measurements:」内のデータはどこから引っ張ってきているのか力不足で分からない。
https://store.moncler.com/SizeHelp/Index?code10=6630340695939643&siteCode=MONCLER_NL&langId=4
環境
Windows10 64bit
Excel 2019 64bit
Internet Explorer 11
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。