|
本帖最后由 mckawayi 于 2015-3-12 09:54 编辑
Option Explicit
Sub t()
Dim html, db, i%, j%, k%, rowx, TD, TR, arrdata(1 To 100000, 1 To 18), P
For P = 1 To 1000
Set html = CreateObject("htmlfile")
With CreateObject("msxml2.xmlhttp")
.Open "GET", "http://data.eastmoney.com/bbsj/201412/yjbb/ggrq/desc/" & P & ".html", False '以取第1页数据为例
.send
Do Until .readyState = 4
DoEvents
Loop
If .Status <> 200 Then
MsgBox "无法打开东方财富网数据中心指定网页" & vbCrLf & vbCrLf & "http://data.eastmoney.com/bbsj/201412/yjbb/ggrq/desc/" & P & ".html" & vbCrLf & vbCrLf & "Http状态:" & .Status
End
End If
html.body.innerhtml = .responsetext
End With
Set db = html.all.tags("table")
For i = 0 To db.Length - 1
If db(i).classname = "tab1" Then
Set rowx = db(i).Rows
For Each TR In rowx
j = j + 1
k = 0
For Each TD In TR.Cells
k = k + 1
If j > 2 Then arrdata(j - 2, k) = TD.innertext
Next TD
Next TR
End If
Next i
Set html = Nothing
Set db = Nothing
Set rowx = Nothing
Next P
Cells.Clear
[a1].Resize(j - 2, 18) = arrdata
End Sub
大神,只要在您的代码中加入红色部分,就会发现某些页面会出现“403禁止访问”提示!
遍历提取业绩预告数据,访问页面http://data.eastmoney.com/bbsj/201503/yjyg/P.html时某些页面也会出现相同“禁止访问”提示!
遍历股票提取龙虎榜数据时,访问页面[url=http://data.eastmoney.com/stock/lhb/xxxxxx.html]http://data.eastmoney.com/stock/lhb/xxxxxx.html时某些页面也会出现相同“禁止访问”提示!
禁止访问了,后续数据提取自然就无法完成。。。倘若这个问题不解决,从东方财富网提取数据就变得极不可靠了。
Http头信息有cookie内容,是否因为这些页面有防盗链而无法正常访问?请大神相助! |
|