MSHTML的问题,在walkall例程中,有些元素值得不到,怎么办?

baicaiyikuang 2008-10-28 06:14:34
WallAll程序在解析某些网页的时候,无法得到某些字段的真实值。比如:http://www.tudou.com/programs/view/UE1Fqhl_6_w/ 中,含有“该视频被播放:”的播放次数,我用WallAll程序得到的结果都是“0”,而页面真实显示的结果是“1959”;就此我跟踪了网页的源代码:
<li>
该视频被播放:<b class="playNum">0</b>  
评论:<b class="commentNum">0</b>
</li>

而在“program_play_44.js”文件中,有JavaScript代码将显示值修改了:

if(o.playNum >= 2000)
$('.playNum').html(o.playNum).css('color','#f60');
else
$('.playNum').html(o.playNum);
在调用这段代码之前,网页发送了如下的HTML请求:
http://www.tudou.com/programs/view_ajax.php?itemID=23109414&uid=0&rnd=0.843696178549679

我目前分析之所以WallAll程序没有改变显示值,其主要原因是在程序还没有发送上面消息的时候就发送Event了,请问高手,我要接收什么类型的消息才能够将上面的HTML请求结果接收到啊?

...全文
79 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baicaiyikuang 2008-10-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yjgx007 的回复:]
试下设置连接点(为IHTMLDocument2*)
连接点的Sink类重载IPropertyNotifySink, IOleClientSite, IDispatch
IPropertyNotifySink::OnChanged(DISPID id)
判断id == DISPID_READYSTATE
不确信可能得到AJAX请求...
[/Quote]
谢谢,这种方法也不大行,现在找到其他方法了,我就不用MSHTML的方法做这件事情了。不过谢谢两位,我结贴了!
yjgx007 2008-10-30
  • 打赏
  • 举报
回复
试下设置连接点(为IHTMLDocument2*)
连接点的Sink类重载IPropertyNotifySink, IOleClientSite, IDispatch
IPropertyNotifySink::OnChanged(DISPID id)
判断id == DISPID_READYSTATE
不确信可能得到AJAX请求...
jameshooo 2008-10-29
  • 打赏
  • 举报
回复
在COM程序中不能使用Sleep调用,但能使用定时器
baicaiyikuang 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jameshooo 的回复:]
js代码总要在某个事件中得到的,你也设置这个事件回调来截获调用,大致原理如下:
var old_onload = window.onload;
window.onload = function (){
old_onload();
// 现在去取值
}

但有个问题就是,如果原来的脚本使用了AJAX异步请求,这样拦截的可能还是0,因为结果还没有返回,这个时候需要设置自己的AJAX状态回调。仔细分析一下它的请求代码,总是可以实现的,实在不行还可以使用定时器,等待一段时间再取。
[/Quote]

我看了一下代码,那个函数好像并没有什么地方调用的,反正就执行了。我也在walkall程序里面加入了一些定时操作,Sleep(10000),其结果也是一样,发现其结果没有任何变化。
jameshooo 2008-10-28
  • 打赏
  • 举报
回复
js代码总要在某个事件中得到的,你也设置这个事件回调来截获调用,大致原理如下:
var old_onload = window.onload;
window.onload = function (){
old_onload();
// 现在去取值
}

但有个问题就是,如果原来的脚本使用了AJAX异步请求,这样拦截的可能还是0,因为结果还没有返回,这个时候需要设置自己的AJAX状态回调。仔细分析一下它的请求代码,总是可以实现的,实在不行还可以使用定时器,等待一段时间再取。

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧