作者:绿色风
分类:
时间:2022-08-18
浏览:119
楼主 xmyjk |
Q:如何获取网页: (原提问帖至17楼开始,已经是另外一个问题的提问了,且回答方式也是与前贴截然不同的,由XMLHTTP转至WEBBROWSR方式回答,特此再次采集。)
A:由于该页面使用XMLHTTP+数组采集的数据,数据会出现错位,且返回的是/U****的四角码,因此不采用XMLHTTP方式续作网页采集,采用WEBBROWSER的方式操作。- Option Explicit
- Sub a()
- Dim ie1 As Object, dmt As Object, r As Object, i As Long, j As Long, n As Long, p As Long
- 'Load UserForm1
- 'UserForm1.Show 0
- On Error Resume Next
- [a1].CurrentRegion.Offset(1).Clear
- Cells.NumberFormat = "@"
- Set ie1 = UserForm1.WebBrowser1
- With ie1
- .Navigate "http://stock.jrj.com.cn/report/yjyg.shtml" '网址
- Do Until .ReadyState = 4 And InStr(.Document.body.innertext, "行情 资讯 股吧") > 0
- DoEvents
- Loop
- Set dmt = .Document
- End With
- Set r = dmt.All.tags("table")(1).Rows
- For i = 0 To r.Length - 1
- For j = 0 To r(i).Cells.Length - 1
- Cells(i + 2, j + 1) = r(i).Cells(j).innertext
- Next
- Next
- Set dmt = Nothing
- Set r = Nothing
- For p = 2 To 3 ' 23
- With ie1
- .Navigate "javascript:myNiceTable.goPage(" & p & ");"
- Do Until Val(.Document.All.tags("table")(1).Rows(0).Cells(0).innertext) = (p - 1) * 50 + 1
- DoEvents
- Loop
- Set dmt = .Document
- End With
- Set r = dmt.All.tags("table")(1).Rows
- n = [a65536].End(3).Row + 1
- For i = 0 To r.Length - 1
- For j = 0 To r(i).Cells.Length - 1
- Cells(i + n, j + 1) = r(i).Cells(j).innertext
- Next
- Next
- Set dmt = Nothing
- Set r = Nothing
- Next
- Set ie1 = Nothing
- [a1].CurrentRegion.Columns.AutoFit
- MsgBox "ok!"
- End Sub
使用WEBBROWSER下载网页数据.rar |
2楼 清华 |
看了附件我受到启发 |
3楼 老肥 |
非常好,有个问题,希望你能帮我解决, QQ:236715227 |
4楼 水星钓鱼 |
学习 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一