|
こんにちは、Satsukiと申します。
プルダウンで検索後に、検索結果の総ページ数を、
検索結果ページのHTMLを解析して取得したいのですが、
上手く取得できる時と、できない時があります。
どなたかご教示のほどよろしくお願いいたします。
Option Explicit
Private objIE As InternetExplorer
Sub main()
Call GetPage(2, "httpから始まるURL")
If Not objIE Is Nothing Then objIE.Quit
Set objIE = Nothing
End Sub
Sub GetPage(row, url)
Call Navigate(url)
url = SelectPulldownMenu(objIE) ←プルダウン選択後のURL取得
Dim PageNum As String
PageNum = getMaxPage(objIE) ←プルダウン選択後のURLでページ数取得
(ここは未完成)
End Sub
Sub Navigate(url)
If objIE Is Nothing Then Set objIE = New InternetExplorer
If objIE.Visible <> True Then objIE.Visible = True
objIE.Navigate2 (url)
While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True
DoEvents
Sleep 100
Wend
Sleep 200
End Sub
Function SelectPulldownMenu(objIE) As String
objIE.document.forms("color")("color_id").Value = "5"
objIE.document.forms("color")("color_id").FireEvent ("OnChange")
SelectPulldownMenu = objIE.LocationURL
Call WaitFor(3)
End Sub
Function getMaxPage(objIE)
Dim MaxPage As Integer
MaxPage = 0
Dim PageNum As String
Dim objTag
For Each objTag In objIE.document.getElementsByTagName("a")
If objTag.className = "pagesu" Then
PageNum = val(objTag.innerText)
If PageNum > MaxPage Then
MaxPage = PageNum
End If
End If
Next
getMaxPage = MaxPage
End Function
Function WaitFor(ByVal second As Integer)
Dim futureTime As Date
futureTime = DateAdd("s", second, Now)
While Now < futureTime
DoEvents
Wend
End Function
|
|