ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南

[已解决] 通过excel实现高考成绩的快速查询

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-10-9 13:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
flysum2008 发表于 2011-10-9 12:56
请教老师,我抓到的网址为:
http://www.sneac.com/gkcjcx/2011zcjcx_jg.jsp?wbtreeid=3063?wbzkzh=0501 ...

不用去了wbtreeid=3063

只是因为你写了wbtreeid=3063?这里不是问号,是&

改wbtreeid=3063&就可以了

TA的精华主题

TA的得分主题

发表于 2011-10-9 13:07 | 显示全部楼层
wudixin96 发表于 2011-10-9 13:04
不用去了wbtreeid=3063

只是因为你写了wbtreeid=3063?这里不是问号,是&

非常感谢老师指点,同时再次感谢您上次对我的帮助!

TA的精华主题

TA的得分主题

发表于 2011-10-9 13:09 | 显示全部楼层
本帖最后由 xmyjk 于 2011-10-9 13:11 编辑

试看看附件:

  1. Option Explicit
  2. Sub test()
  3. Dim tmp() As String, i As Integer, arr(8) As String, xmlhttp As Object, p As Long, tmp2() As String
  4. Dim zkz As String, sfz As String, url As String
  5. Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
  6. For p = 2 To [a65536].End(3).Row
  7.     zkz = Cells(p, 1): sfz = Cells(p, 2)
  8.     url = "http://www.sneac.com/gkcjcx/2011zcjcx_jg.jsp?wbzkzh=" & zkz & "&wbsfzh=" & sfz
  9.     With xmlhttp
  10.         .Open "get", url, False
  11.         .send
  12.         tmp = Filter(Split(.responsetext, "</td>"), "<td align='center'>")
  13.         tmp2 = Filter(Split(.responsetext, "</td>"), "679706692_3119"" >")
  14.     End With
  15.     For i = 0 To UBound(tmp)
  16.        arr(i + 2) = Split(tmp(i), "<td align='center'>")(1)
  17.     Next
  18.     For i = 1 To 2
  19.        arr(i - 1) = Split(tmp2(i), "679706692_3119"" >")(1)
  20.     Next
  21.     Cells(p, 3).Resize(1, 9) = arr
  22.     Erase tmp, tmp2, arr
  23.     zkz = "": sfz = "": url = ""
  24. Next

  25. Set xmlhttp = Nothing
  26.    
  27. MsgBox "Ok"
  28. End Sub

复制代码


gk.rar

280 Bytes, 下载次数: 305

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-9 13:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
xmyjk 发表于 2011-10-9 13:09
试看看附件:

谢谢回复!厉害,这个方法我一直没掌握,主要是要分离代码,有时还要转换,比较麻烦。要是我能学到您的一半就好了,呵呵!

TA的精华主题

TA的得分主题

发表于 2011-10-9 13:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 xmyjk 于 2011-10-9 13:37 编辑
flysum2008 发表于 2011-10-9 13:23
谢谢回复!厉害,这个方法我一直没掌握,主要是要分离代码,有时还要转换,比较麻烦。要是我能学到您的一 ...

一般看编码(源代码能看出来):

一般,就.responsetext就可以了。
如果是charset=gbk,就用StrConv(.responsebody, vbUnicode, &H804) (限于中文版OFFICE)

网页数据截取是体力活啦,无非是文本处理,可以向敌哥多学学正则{:soso_e102:},就很容易超越我了。

点评

我向你学习,不过还好这个网页支持GET传递参数。  发表于 2011-10-9 13:31

TA的精华主题

TA的得分主题

发表于 2011-10-9 13:36 | 显示全部楼层
xmyjk 发表于 2011-10-9 13:30
一般看编码(源代码能看出来):

如果UTF-8,就.responsetext就可以了。

谢谢,又学了一招,您和敌哥都是我学习的榜样!

TA的精华主题

TA的得分主题

发表于 2011-10-9 13:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 xmyjk 于 2011-10-9 13:43 编辑
wudixin96 发表于 2011-10-9 13:04
不用去了wbtreeid=3063

只是因为你写了wbtreeid=3063?这里不是问号,是&

一般性的GET或POST都可以,XMLHTTP也可以模拟消息头进行POST的,不过如果有COOKIE等控制的页面,XMLHTTP比较难模拟就是了,还有AJAX技术的一些页面,也比较难用XMLHTTP操控。这时一般用WEBBROWSER/IE就是了。

TA的精华主题

TA的得分主题

发表于 2011-10-9 13:56 | 显示全部楼层
xmyjk 发表于 2011-10-9 13:42
一般性的GET或POST都可以,XMLHTTP也可以模拟消息头进行POST的,不过如果有COOKIE等控制的页面,XMLHTTP比 ...

麻烦老师帮我看下,如何让查询网页不在IE中出现,而是出现在webbrowser里,谢谢!在网上搜索好长时间没找到答案

高考成绩查询qz.rar

14.23 KB, 下载次数: 133

TA的精华主题

TA的得分主题

发表于 2011-10-9 14:33 | 显示全部楼层
flysum2008 发表于 2011-10-9 13:56
麻烦老师帮我看下,如何让查询网页不在IE中出现,而是出现在webbrowser里,谢谢!在网上搜索好长时间没找 ...

刚看到,试看看:
  1. Sub wz()
  2. 'http://club.excelhome.net/thread-772576-1-1.html
  3.     UserForm1.Show 0

  4.     Set IE = UserForm1.WebBrowser1
  5.     With IE
  6.         .navigate "http://www.sneac.com/gkcxx/cjcx/zcjcx.htm "
  7.         Do Until .readyState = 4
  8.         DoEvents
  9.         Loop

  10.         .document.body.innerHTML = Replace(.document.body.innerHTML, "blank", "self")
  11.         
  12.         .document.all.tags("input")(0).Value = "0501151847"
  13.         .document.all.tags("input")(1).Value = "610502199209278236"
  14.         
  15.         .document.all.tags("img")(1).Click  '查询
  16.         
  17.     End With
  18. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2011-10-9 14:41 | 显示全部楼层
xmyjk 发表于 2011-10-9 14:33
刚看到,试看看:

非常感谢!测试成功。请问为什么加了这句 .document.body.innerHTML = Replace(.document.body.innerHTML, "blank", "self")就可以了呢?是修改了源代码吗?能解释下这么做的目的和原因吗?谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 01:25 , Processed in 0.038649 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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