本帖最后由 crazy0qwer 于 2016-10-19 23:52 编辑
下面这段和上面一段代码,对文件格式要求较高,故结果不保证百分百。
- Sub Crazy0qwer1()
- Dim Ad As Object
- Dim Ar(1 To 1000, 1 To 2), Br(1 To 1000, 1 To 7)
- Dim P As String, F As String, Str As String
- Dim N As Long, X As Long, Y As Long, I As Long
- P = ThisWorkbook.Path & ""
- F = "onlineAnswerSjfs.do gqid=27623479.htm"
- Set Ad = CreateObject("adodb.stream")
- With Ad
- .Charset = "utf-8"
- .Type = 2
- .Open
- .LoadFromFile P & F
- Str = .ReadText
- .Close
- End With
- Set Ad = Nothing
- X = 1
- Do
- X = InStr(X, Str, "name=""tkid""")
- If X = 0 Then Exit Do
- N = N + 1
- Ar(N, 1) = Mid$(Str, X + 19, InStr(X + 19, Str, """") - X - 19)
- X = InStr(X, Str, "第")
- Ar(N, 2) = Val(Mid$(Str, X + 7, 3))
- X = InStr(X, Str, ":")
- Br(N, 1) = Mid$(Str, X + 1, InStr(X, Str, "</p>") - X - 1)
- Y = X
- For I = 2 To 7
- Y = InStr(Y + 10, Str, "<p style=")
- If Y = 0 Or Y > InStr(X, Str, "</div>") Then Exit For
- Y = InStr(Y + 10, Str, "</span>")
- X = InStrRev(Str, ">", Y - 2)
- Br(N, I) = Mid$(Str, X + 1, Y - X - 1)
- Next
- Loop
- Rows("2:1000").ClearContents
- [A2].Resize(N, 2) = Ar
- [D2].Resize(N, 7) = Br
- End Sub
复制代码 |