123 lines
3.2 KiB
QBasic
123 lines
3.2 KiB
QBasic
Attribute VB_Name = "TrackworkResult_aspx"
|
|
|
|
Option Explicit
|
|
|
|
|
|
Public Sub test()
|
|
'horse_id = "HK_2022_H195"
|
|
'row_offset = 0
|
|
Dim horse_id As String
|
|
Dim row_offset As String
|
|
|
|
|
|
' Create a new instance of the WebDriver.
|
|
Dim driver As New WebDriver
|
|
|
|
' Set the path to the WebDriver executable.
|
|
driver.SetBinary "C:\Users\logic\AppData\Local\Chromium\Application\chrome.exe"
|
|
|
|
' Start Chrome.
|
|
driver.Start "chrome"
|
|
|
|
|
|
Dim not_use As String
|
|
not_use = TrackworkResult_aspx.Scrape(driver, "HK_2022_H195", 0, "2024/04/20")
|
|
|
|
|
|
driver.Quit
|
|
|
|
End Sub
|
|
|
|
Public Function Scrape(driver As WebDriver, horse_id As String, ByVal row_offset As Integer, ByVal s_date As String)
|
|
|
|
Dim script_content As String
|
|
|
|
' Create a new instance of the WebDriver.
|
|
'Dim driver As New WebDriver
|
|
|
|
' Set the path to the WebDriver executable.
|
|
'driver.SetBinary "C:\Users\logic\AppData\Local\Chromium\Application\chrome.exe"
|
|
|
|
' Start Chrome.
|
|
'driver.Start "chrome"
|
|
|
|
' Navigate to a website.
|
|
driver.Get "https://racing.hkjc.com/racing/information/English/Trackwork/TrackworkResult.aspx?HorseId=" & horse_id
|
|
|
|
' document.querySelectorAll('#racecardlist tbody tr')[2].textContent
|
|
Dim i, j As Integer
|
|
|
|
|
|
Dim startCell As Range
|
|
Set startCell = Worksheets("Sheet1").Range("A3")
|
|
|
|
Dim all_row As String
|
|
|
|
script_content = "{" & _
|
|
"list_e = [];" & _
|
|
"document.querySelector('div.performance table').querySelectorAll('tr').forEach((r,i) => {" & _
|
|
" if (i > 0) list_e.push(r.textContent.replace(/\n +/g,'___').slice(3,-3));" & _
|
|
"});" & _
|
|
"return list_e.join('|||');" & _
|
|
"}"
|
|
|
|
all_row = driver.ExecuteScript(script_content)
|
|
|
|
Dim table_rows As Variant
|
|
table_rows = Split(all_row, "|||")
|
|
|
|
For i = 0 To UBound(table_rows) - 1
|
|
|
|
Dim td_s As Variant
|
|
|
|
Dim event_date As String
|
|
td_s = Split(table_rows(i), "___")
|
|
event_date = td_s(0)
|
|
|
|
Dim event_person as String
|
|
td_s = Split(table_rows(i), "___")
|
|
event_person = td_s(3)
|
|
|
|
|
|
Dim date_diff As Integer
|
|
date_diff = DateDiff("d", Common.ParseDDMMYYYY(event_date), s_date)
|
|
|
|
If (date_diff <= 20) Then
|
|
If (InStr(td_s(1), "Barrier Trial") > 0) Then
|
|
startCell.Offset(row_offset, 24).value = "Y"
|
|
If (startCell.Offset(row_offset, 25).value = "") Then
|
|
startCell.Offset(row_offset, 25).value = event_date
|
|
Else
|
|
startCell.Offset(row_offset, 25).value = startCell.Offset(row_offset, 25).value & "," & event_date
|
|
End If
|
|
End If
|
|
|
|
|
|
If (InStr(td_s(1), "Gallop") > 0) Then
|
|
' Gallop by R.B. ?
|
|
if (InStr(event_person, "R.B.") > 0) Then
|
|
startCell.Offset(row_offset, 26).value = "Y"
|
|
end if
|
|
|
|
If (startCell.Offset(row_offset, 27).value = "") Then
|
|
startCell.Offset(row_offset, 27).value = event_date
|
|
Else
|
|
startCell.Offset(row_offset, 27).value = startCell.Offset(row_offset, 27).value & "," & event_date
|
|
' Dim current_cell As Variant
|
|
' Set current_cell = startCell.Offset(0, 27)
|
|
' current_cell.Hyperlinks.Add Anchor:=current_cell, Address:="https://racing.hkjc.com/racing/information/Chinese/Horse/Horse.aspx?HorseId=" & horse_id
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
'driver.Quit
|
|
|
|
End Function
|
|
|
|
|
|
|
|
|
|
|