作者:绿色风
   分类:
   时间:2022-08-17
   浏览:229
      
  | 楼主 xmyjk
 | Q:主页面的地址是:http://116.252.221.174/guawang_sys/index_gw.asp?guawangid=FCK13511920120118t 需要获取其37页的网页数据。
 
 A:通过其中的网页源代码:“<iframe name="import_frame" width=100%
 height=94% src="guawang_tables.asp?guawangid=FCK13511920120118t" frameborder=auto></iframe>”
 可知,其主要数据存在于http://116.252.221.174/guawang_sys/guawang_tables.asp?guawangid=FCK13511920120118t中,但是,并从源代码和抓包工具可知,在URL后面加上page=1(至37)的参数,可以得到以后每页的数据。
 但是,例如直接使用http://116.252.221.174/guawang_sys/guawang_tables.asp?guawangid=FCK13511920120118t&page=1,网页会提示如图
 
   
 因此,简单的一个步骤,委屈求全,先访问主页面后,然后再访问框架页面,直接简单的绕过网页的框架防护机制。
 代码如下:
 Option Explicit
Sub a()
    Dim ie1 As Object, dmt As Object, r As Object, i As Long, x As Long, j As Long, p As Long
  '  Load UserForm1
   ' UserForm1.Show 0
    [a1].CurrentRegion.Offset(1).Clear
    Cells.NumberFormat = "@"
    Set ie1 = UserForm1.WebBrowser1
    With ie1
        .Navigate "http://116.252.221.174/guawang_sys/index_gw.asp?guawangid=FCK13511920120118t" '访问主页面
        Do Until .ReadyState = 4 '等待页面加载完毕
            DoEvents
        Loop
        For x = 1 To 37 '分别访问数据页面37页
            .Navigate "http://116.252.221.174/guawang_sys/guawang_tables.asp?page=" & x & "&guawangid=FCK13511920120118t" '对子页面进行分别的导航
            Do Until .ReadyState = 4 '等待页面加载完毕
                DoEvents
            Loop
            Set dmt = .Document '获取文档体
            For i = 5 To dmt.All.tags("table").Length - 2 '获取数据所在的表格
                Set r = dmt.All.tags("table")(i).Rows '获取数据表格的行
                p = [a65536].End(3).Row + 1 '在现有数据的下一行续写
                For j = 0 To r(0).Cells.Length - 1 '历遍表格每一列数据
                    Cells(p, j + 1) = r(0).Cells(j).innerText '取数
                Next
                Set r = Nothing
            Next
            Set dmt = Nothing
        Next
    End With
    Set ie1 = Nothing
    [a1].CurrentRegion.Columns.AutoFit
End Sub
 
  123.zip 
 | 
| 2楼 亡者天下
 | 弦月的VBA也不错啊,又一高手,学习 | 
| 3楼 fly1425
 | 不是很明白```学习中``` | 
| 4楼 5517772
 | 这个代码用的是 WebBrowser  控件吧,那里是xmlhttp对象 | 
| 5楼 水星钓鱼
 | 这个代码没有用哦 | 
| 6楼 老糊涂
 | 学习 | 
| 7楼 hhaa999
 | 学习 | 
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
      ------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一