Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 16535|回复: 13

[已解决]EXCEL 获取网页数据

  [复制链接]
发表于 2011-2-28 20:22 | 显示全部楼层 |阅读模式
从打开的网页中提取姓名、分数、录取学校。填入本表中
现在的问题是找不到带有成绩网页的代码郁闷
最佳答案
2011-3-3 23:14
运行下面代码
Sub ff()
Dim Xl As Object
Dim shtm As String
Dim arr As Variant
Dim i As Integer, ict As Integer
Set Xl = CreateObject("MiCROSOFT.XMLHTTP")
With Sheet1
For i = 2 To 2742
    Xl.Open "post", "http://www.e37www.cn/ks/fsqueryProcess.jsp", False
    Xl.setRequestHeader "content-type", "application/x-www-form-urlencoded"
    Xl.send "zkz=" & .Cells(i, 1).Text & "&sfz=" & .Cells(i, 2).Text
    shtm = Xl.responseText
    arr = Split(shtm, "考生姓名")
    arr = Split(arr(1), "<span class=" & Chr(34) & "STYLE26" & Chr(34) & ">")
    arr = Split(arr(1), "</span>")
    .Cells(i, 3) = arr(0)
    Application.StatusBar = "正在获取:" & arr(0) & " 的数据,请稍候...按Esc键停止"
    arr = Split(shtm, "总分")
    arr = Split(arr(1), "<span class=" & Chr(34) & "STYLE27" & Chr(34) & ">")
    arr = Split(arr(1), "</span>")
    .Cells(i, 4) = "总分:" & arr(0)
    arr = Split(shtm, "录取结果:")
    If UBound(arr) > 0 Then
        arr = Split(arr(1), "</td>")
        .Cells(i, 5) = arr(0)
    Else
        .Cells(i, 5) = "[无录取]"
    End If
    ict = ict + 1
    DoEvents
Next
End With
Application.StatusBar = False

End Sub

获取成绩.rar

51.11 KB, 下载次数: 274

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-2-28 20:27 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2011-2-28 20:39 | 显示全部楼层
试过几种办法,找不到要获取的值,真是郁闷。请高手点

回复

使用道具 举报

发表于 2011-2-28 21:18 | 显示全部楼层
这个应该可以取下来,不能这样打开网页啊,这样打开,不怕电脑死机?没时间折腾这个了。多找找百度之类的想想办法吧
回复

使用道具 举报

 楼主| 发表于 2011-3-1 08:56 | 显示全部楼层
这个我知道,如果能取下,网页就是不用打开了,这样可以省内存。
回复

使用道具 举报

发表于 2011-3-1 09:10 | 显示全部楼层
呵,碰到这种情况我只会用按键精灵和网页按键精灵的元素特征字符串来读取网页数据,再把数据在后台写入EXCEL工作表中。
回复

使用道具 举报

发表于 2011-3-1 09:11 | 显示全部楼层
速度也很快!
回复

使用道具 举报

发表于 2011-3-1 15:04 | 显示全部楼层
留个记号
回复

使用道具 举报

发表于 2011-3-3 23:14 | 显示全部楼层    本楼为最佳答案   
运行下面代码
Sub ff()
Dim Xl As Object
Dim shtm As String
Dim arr As Variant
Dim i As Integer, ict As Integer
Set Xl = CreateObject("MiCROSOFT.XMLHTTP")
With Sheet1
For i = 2 To 2742
    Xl.Open "post", "http://www.e37www.cn/ks/fsqueryProcess.jsp", False
    Xl.setRequestHeader "content-type", "application/x-www-form-urlencoded"
    Xl.send "zkz=" & .Cells(i, 1).Text & "&sfz=" & .Cells(i, 2).Text
    shtm = Xl.responseText
    arr = Split(shtm, "考生姓名")
    arr = Split(arr(1), "<span class=" & Chr(34) & "STYLE26" & Chr(34) & ">")
    arr = Split(arr(1), "</span>")
    .Cells(i, 3) = arr(0)
    Application.StatusBar = "正在获取:" & arr(0) & " 的数据,请稍候...按Esc键停止"
    arr = Split(shtm, "总分")
    arr = Split(arr(1), "<span class=" & Chr(34) & "STYLE27" & Chr(34) & ">")
    arr = Split(arr(1), "</span>")
    .Cells(i, 4) = "总分:" & arr(0)
    arr = Split(shtm, "录取结果:")
    If UBound(arr) > 0 Then
        arr = Split(arr(1), "</td>")
        .Cells(i, 5) = arr(0)
    Else
        .Cells(i, 5) = "[无录取]"
    End If
    ict = ict + 1
    DoEvents
Next
End With
Application.StatusBar = False

End Sub

评分

参与人数 1 +5 收起 理由
sunjing-zxl + 5 学习了

查看全部评分

回复

使用道具 举报

发表于 2011-3-4 07:10 | 显示全部楼层
试试上面的代码                  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-20 11:33 , Processed in 0.303349 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表