
'抓了451首七言绝句,需要联网。
Option Explicit
Private Sub Form_Load()
Dim url, page, a, i, j, k, t, s, m, n
ReDim b(1 To 10 ^ 4, 1 To 10) As String
For i = 1 To 23
If i = 1 Then t = vbNullString Else t = "page" & i & "/"
url = "
http://www.gushicimingju.com/gushi/qiyanjueju/" & t
With CreateObject("Microsoft.XMLHTTP")
.Open "GET", url, False
.Send
page = .ResponseBody
End With
With CreateObject("adodb.stream")
.Type = 1
.Mode = 3
.Open
.Write page
.Position = 0
.Type = 2
.Charset = "utf-8"
page = .readtext
End With
a = Split(Split(page, "main-data""><li>")(1), "</span></li><li>")
For j = 0 To UBound(a)
t = Split(a(j), "</span></li>")(0)
If Len(t) Then
If IsNumeric(Left(t, 1)) Then
t = Split(t, "</a>")
m = m + 1: n = 0
For k = 0 To UBound(t)
s = Replace(Split(t(k), ">")(1), vbLf, vbNullString)
If InStr(LCase(s), "span") = 0 Then n = n + 1: b(m, n) = s
Next
End If
End If
Next
Next
Debug.Print m
If m > 0 Then [a1].Resize(m, UBound(b, 2)) = b
End Sub