返回信息流我们基于selenium做了一个自动化测试工具,selenium打开页面之后,想做一些处理,例如检查是否包含匹配的关键字。由于页面采用了一些动态脚本,调用selenium提供的接口后无法完全保存页面中的文本信息。
想问问大家有什么好的办法,使用java读取当前打开窗口中的内容。
注意:当前浏览器窗口是基于selenium的open函数打开的,不是自己调用java的urlconnection打开的。
谢谢
这是一条镜像帖。来源:北邮人论坛 / java / #15468同步于 2010/8/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
【咨询】java读取网页内容
buptsoftware
2010/8/11镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
这个还真不好搞,如果页面是加载了js修改了dom,那你似乎只能解析js了。因此首先需要界定你关注的内容是否包括被js动态改变的dom,如果不包括,那没有问题,你只需要得到当前页面就行了,或者里面的iframe;否则看看能不能做个firefox插件之类的东西,用java调用firefox打开那个页面,在插件里把内存中的dom打出来放入文件。这个办法比较丑陋。
谢谢哈~
是啊。很难搞。
现在是调用autoit做一次crtl+a,crtl+c,crtl+v保存到一个文件里边。。。。
然后再对文件做解析。。
【 在 lazytiger 的大作中提到: 】
: 这个还真不好搞,如果页面是加载了js修改了dom,那你似乎只能解析js了。因此首先需要界定你关注的内容是否包括被js动态改变的dom,如果不包括,那没有问题,你只需要得到当前页面就行了,或者里面的iframe;否则看看能不能做个firefox插件之类的东西,用java调用firefox打开那个页面,在插件里把内存中的dom打出来放入文件。这个办法比较丑陋。
这个结合已有项目,不大行。。。
其实有个思路就是模仿金山词霸的取词,把取词的范围扩大到整个页面。。。
不过这个涉及到汇编,win32 api等东西,难度系数太高了。
【 在 neo861002 的大作中提到: 】
: curl wget 试试
我记得java可以调用IE,这样就能够获取js执行后的dom。
以前用过一个开源项目,现在找不到了。
我看网上结束的
JDIC 全程是 JDesktop Integration Components 目的是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC 单一的 Java API 允许应用程序接进本机操作系统特性,同时保持跨平台支持。它目前提供了本机 Web 浏览器(Internet Explorer 或 Mozilla) 支持、系统托盘支持、文件扩展集成和其他桌面特性。
也能实现这个功能。到www.sourceforeg.ent找找
恩,这个方法不错。谢谢
昨天我刚试了试通过写一个BHO,作为IE插件,来获取页面内容,写入文件。然后java再进行读操作。
【 在 fusionyu 的大作中提到: 】
: 我记得java可以调用IE,这样就能够获取js执行后的dom。
: 以前用过一个开源项目,现在找不到了。
: 我看网上结束的
: ...................