ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH云课堂-专业的职场技能充电站 Excel转在线管理系统,怎么做看这里 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 高效办公必会的Office实战技巧 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 3900|回复: 3

[求助] VBA网页源代码分析求助-编码问题?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-3-30 15:09 | 显示全部楼层 |阅读模式
本帖最后由 goldowl2011 于 2012-4-1 10:48 编辑

一个内部jsp菜单网页抓取的源代码如下,看不太懂,想查找其中的三个中文链接,并点击链接,拟用VBA测试实现,但网页抓取信息与显示不同?请高手讲解一下,是内码问题还是JSP网页编程的效果。原网址是一个框架网页,这部分是下左部的菜单部分:



'<html>
'<head>
'<title>菜单导航栏</title>
'<link rel="stylesheet" type="text/css" href="css/css.css" />
'<link rel="stylesheet" type="text/css" href="css/iframeLeft.css">
'<script type="text/javascript" src="js/iframeLeft.js"></script>
'</head>
'<body bgcolor="#343D44" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
'  <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
'    <tr>
'      <td align="center"><input id="sXML" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
'&lt;Navagate&gt;&lt;NavagateBar BarID=&quot;706&quot; Ico=&quot;cd7-1.gif&quot; Id=&quot;706&quot; 'Text=&quot;&#26597;&#35810;&#32479;&#35745;&quot;&gt;&lt;Item Ico=&quot;LeftMainMenu.gif&quot; 'ItemID=&quot;1801&quot; Text=&quot;&#23384;&#27454;&#26126;&#32454;&#36134;&#21333;&#26597;&#35810;&quot; 'UrlName=&quot;forwardDepositQuery&quot;/&gt;&lt;Item Ico=&quot;LeftMainMenu.gif&quot; ItemID=&quot;5009&quot; 'Text=&quot;VIP&#23384;&#27454;&#26126;&#32454;&#26597;&#35810;&quot; 'UrlName=&quot;forwardVipDepositQuery&quot;/&gt;&lt;Item Ico=&quot;LeftMainMenu.gif&quot; ItemID=&quot;513&quot; 'Text=&quot;&#36151;&#27454;&#26126;&#32454;&#36134;&#21333;&#26597;&#35810;&quot; 'UrlName=&quot;forwardLoanQuery.action&quot;/&gt;&lt;/NavagateBar&gt;&lt;/Navagate&gt;" type="hidden"/>
'      <div id="Panel1" style="width:200px; height:100%;"></div></td>
'    </tr>   
'  </table>
'</body>
'</html>






TA的精华主题

TA的得分主题

发表于 2012-3-30 18:08 | 显示全部楼层
本帖最后由 xmyjk 于 2012-3-30 18:09 编辑

内网,貌似还有xml数据流,看不到情况,没法帮你搞定。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-3-31 16:34 | 显示全部楼层
xmyjk,我一直都在学习您的帖子。能得到您的回复,非常感谢。我将从网页上抓取的信息发上来,请您帮忙分析一下,或者介绍个方法,多给几个相关实例也可,我尽量自己去完成编程,只是中VBA网络编程这一块才接触不长时间,手较生,请您多多指教。
webcontrol.rar (12.39 KB, 下载次数: 41)

点评

要不很有可能你框架你们那个TABLE数据源是一个xml数据,二次写入的,那可能就不是那么好抓的了。你看看抓包工具能不能看到。  发表于 2012-4-1 01:00
像你第一句话说的,能Debug.Print IE.Document.frames.Item("leftFrame").Document.body.innerHTML,这样的,如果没有报错“跨域访问”,应该还是可以直接通过框架去操纵的啊。  发表于 2012-4-1 00:59
我关于跨域访问的例子,只有这个捏,http://club.excelhome.net/forum.php?mod=redirect&goto=findpost&ptid=823704&pid=5644776  发表于 2012-4-1 00:55

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-4-9 13:43 | 显示全部楼层
本帖最后由 goldowl2011 于 2012-4-9 14:14 编辑

感谢xmyjk老师,通过分析测试,我直接使用getElementById 和 getElementsByName完成了相应的赋值和点击操作,其他代码也已经完成!
IE.Document.getElementById("accountNo").Value = AccountNo   ' '访问链接参数化2
IE.Document.getElementsByName("query")(0).Click           '取Name集合中的第1个元素
Do While IE.Busy Or IE.ReadyState <> 4
    DoEvents
Loop

另我还有一个问题:遇到用java写的网页,我要点击下部左侧框架中的菜单列表中的文字链接,但文字链接是以列表方式显示,。其代码如下示例:
<div  id=myMainDiv>
<ul id="secondLayerMenu1"  class="collapsed">
<li>
<a  onmouseover="changebold(this)"><img src="/lcms/common/image/default/menuimage/3d.jpg"></img>菜单一</a>
</li>

<li>
<a  onmouseover="changebold(this)"><img src="/lcms/common/image/default/menuimage/3d.jpg"></img>菜单二</a>
</li>
                                       
<li>
<a  onmouseover="changebold(this)"><img src="/lcms/common/image/default/menuimage/3d.jpg"></img>菜单三</a>
</li>
                                       
</ul>
                        
<li>
<a>        <img src="/lcms/common/image/default/menuimage/menusec1.jpg"></img>菜单四(我想点击文字链接1-会弹出子菜单再点击)</a>
</li>
<ul id="secondLayerMenu2"  class="collapsed">
<li>
<a  onmouseover="changebold(this)"><img src="/lcms/common/image/default/menuimage/3d.jpg"></img>菜单四的子菜单(我想点击文字链接2)
</a>
</li>
</ul>

</div>

我在ie.document.frames.Item("mainFrame").Document.frames.Item("left")
点击菜单四,弹出子菜单,再点击菜单四的子菜单后,会在右侧的ie.document.frames.Item("mainFrame").Document.frames.Item("right")
框架中显示我最终想要的页面。但如果我直接输入地址打开的话,因为程序中有防止脱离框架的代码,会导致页面报错退出!
请教如何点击链接文字?或能够定位菜单文字的屏幕坐标,模拟鼠标点击它也可以,或者是否能直接在mainFrame子框架中打开指定链接?不知代码应如何写,请xmyjk老师赐教,谢谢!


抓取的菜单子框架中代码.rar (1.6 KB, 下载次数: 53)

webcontrol.rar

10.99 KB, 下载次数: 42

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

本版积分规则

关注官方微信,高效办公专列,每天发车

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

GMT+8, 2019-8-23 12:52 , Processed in 0.067062 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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