| a | b | |
|---|
| 0 | + | Option Explicit |
|---|
| 0 | + | |
|---|
| 0 | + | Function Concat(A, B) |
|---|
| 0 | + | Dim C |
|---|
| 0 | + | ReDim C(UBound(A) + UBound(B) + 1) |
|---|
| 0 | + | |
|---|
| 0 | + | Dim Dst |
|---|
| 0 | + | Dst = 0 |
|---|
| 0 | + | |
|---|
| 0 | + | Dim Src |
|---|
| 0 | + | For Src = 0 To UBound(A) |
|---|
| 0 | + | C(Dst) = A(Src) |
|---|
| 0 | + | Dst = Dst + 1 |
|---|
| 0 | + | Next |
|---|
| 0 | + | |
|---|
| 0 | + | For Src = 0 To UBound(B) |
|---|
| 0 | + | C(Dst) = B(Src) |
|---|
| 0 | + | Dst = Dst + 1 |
|---|
| 0 | + | Next |
|---|
| 0 | + | |
|---|
| 0 | + | Concat = C |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Function GetContent(Url) |
|---|
| 0 | + | Dim Req |
|---|
| 0 | + | Set Req = CreateObject("MSXML2.ServerXMLHTTP.6.0") |
|---|
| 0 | + | Req.Open "GET", Url, False |
|---|
| 0 | + | Req.Send |
|---|
| 0 | + | GetContent = Req.ResponseText |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Function GetDateInfo(Content) |
|---|
| 0 | + | Dim Reg |
|---|
| 0 | + | Set Reg = New RegExp |
|---|
| 0 | + | Reg.Pattern = "<div class=""date"">(.*?)</div>" |
|---|
| 0 | + | |
|---|
| 0 | + | Dim Mats |
|---|
| 0 | + | Set Mats = Reg.Execute(Content) |
|---|
| 0 | + | |
|---|
| 0 | + | GetDateInfo = Split(Mats(0).SubMatches(0), " ") |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Function Flatten(Url) |
|---|
| 0 | + | Dim Idx |
|---|
| 0 | + | Idx = InStrRev(Url, "/") |
|---|
| 0 | + | |
|---|
| 0 | + | Dim Num |
|---|
| 0 | + | Num = Mid(Url, Idx + 1) |
|---|
| 0 | + | |
|---|
| 0 | + | Dim Ran |
|---|
| 0 | + | Ran = Split(Num, "-") |
|---|
| 0 | + | |
|---|
| 0 | + | Dim Fst |
|---|
| 0 | + | Fst = CInt(Ran(0)) |
|---|
| 0 | + | |
|---|
| 0 | + | Dim Lst |
|---|
| 0 | + | If UBound(Ran) = 0 Then |
|---|
| 0 | + | Lst = Fst |
|---|
| 0 | + | Else |
|---|
| 0 | + | Lst = CInt(Ran(1)) |
|---|
| 0 | + | End If |
|---|
| 0 | + | |
|---|
| 0 | + | Dim A |
|---|
| 0 | + | ReDim A(Lst - Fst) |
|---|
| 0 | + | |
|---|
| 0 | + | Dim I |
|---|
| 0 | + | I = 0 |
|---|
| 0 | + | |
|---|
| 0 | + | Dim N |
|---|
| 0 | + | For N = Fst To Lst |
|---|
| 0 | + | A(I) = Mid(Url, 1, Idx) & N |
|---|
| 0 | + | I = I + 1 |
|---|
| 0 | + | Next |
|---|
| 0 | + | |
|---|
| 0 | + | Flatten = A |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Function Sort(Src, Index) |
|---|
| 0 | + | Dim Dst |
|---|
| 0 | + | Dst = Src |
|---|
| 0 | + | |
|---|
| 0 | + | Dim I |
|---|
| 0 | + | For I = UBound(Dst) - 1 To 0 Step -1 |
|---|
| 0 | + | Dim J |
|---|
| 0 | + | For J = 0 To I |
|---|
| 0 | + | If Dst(J)(Index) > Dst(J + 1)(Index) Then |
|---|
| 0 | + | Dim T |
|---|
| 0 | + | T = Dst(J) |
|---|
| 0 | + | Dst(J) = Dst(J + 1) |
|---|
| 0 | + | Dst(J + 1) = T |
|---|
| 0 | + | End If |
|---|
| 0 | + | Next |
|---|
| 0 | + | Next |
|---|
| 0 | + | |
|---|
| 0 | + | Sort = Dst |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Function ReadUrls() |
|---|
| 0 | + | ReadUrls = Array( _ |
|---|
| 0 | + | "http://hanabi.2ch.net/test/read.cgi/soccer/1490483242/101-103", _ |
|---|
| 0 | + | "http://echo.2ch.net/test/read.cgi/tech/1490506257/200") |
|---|
| 0 | + | End Function |
|---|
| 0 | + | |
|---|
| 0 | + | Sub Main() |
|---|
| 0 | + | Dim Data |
|---|
| 0 | + | Data = Array() |
|---|
| 0 | + | |
|---|
| 0 | + | Dim Url |
|---|
| 0 | + | For Each Url In ReadUrls() |
|---|
| 0 | + | Dim FlatUrl |
|---|
| 0 | + | For Each FlatUrl In Flatten(Url) |
|---|
| 0 | + | Dim Content |
|---|
| 0 | + | Content = GetContent(FlatUrl) |
|---|
| 0 | + | |
|---|
| 0 | + | Dim DateInfo |
|---|
| 0 | + | DateInfo = GetDateInfo(Content) |
|---|
| 0 | + | |
|---|
| 0 | + | Dim Record |
|---|
| 0 | + | Record = Concat(Array(FlatUrl), DateInfo) |
|---|
| 0 | + | |
|---|
| 0 | + | Data = Concat(Data, Array(Record)) |
|---|
| 0 | + | Next |
|---|
| 0 | + | Next |
|---|
| 0 | + | |
|---|
| 0 | + | Dim Sorted |
|---|
| 0 | + | Sorted = Sort(Data, 2) |
|---|
| 0 | + | Sorted = Sort(Sorted, 1) |
|---|
| 0 | + | |
|---|
| 0 | + | For Each Record In Sorted |
|---|
| 0 | + | WScript.Echo Join(Record, ", ") |
|---|
| 0 | + | Next |
|---|
| 0 | + | End Sub |
|---|
| 0 | + | |
|---|
| 0 | + | Main |
|---|
| ... | |
|---|