我正在开发一个Android应用程序,它从使用JavaScript的网站获取其信息。
我想通过我的Android应用程序运行一个java脚本函数。
在示例中:此网站http://www.bgu.co.il/tremp.aspx在javascript函数的底部(希伯来语)中有“下一页”。我想通过我的应用程序进入下一页。
如何向网站发送“移至下一页”命令或激活按钮的onClick事件?
编辑:我正在使用XML解析器(sax解析器)从此站点获取信息,我想进入此站点的下一页以便解析它。我希望我现在明确了自己
答案 0 :(得分:1)
你真的需要更充分地解释......
您是打开该页面并在代码中解析它,是否嵌入了WebView,或者只是创建一个Intent,在用户首选的Web浏览器中打开该页面?
如果是后者,那么你绝对不能做你所建议的。
如果你使用的是WebView我很确定你仍然无法以你想要的方式访问页面的DOM
这意味着您的解决方案是在代码中加载和解析网页 - 提取“下一页”,然后根据您的意愿进行操作...
答案 1 :(得分:1)
答案 2 :(得分:0)
好的 - 现在我们知道您正在解析我可以尝试回答您问题的页面!
你不能在已解析的页面上“点击”某些内容,因为你没有Javascript引擎 - 它只是一个XML文档 - 由文本构成的节点集合。
在这种情况下,您需要确定分页系统的实际工作方式 - 并查看Firebug之类的页面使其变得非常简单。
分页系统通过FORM POST机制工作 - 当您单击“下一步”或页码如“2”时,它只是从服务器加载相同的页面,但设置了POST变量。
关键变量是“__EVENTTARGET” - 它告诉ASP加载哪个页面(当然是希伯来文)。
障碍是你需要从这个页面传递所有其他POST变量 - 这是每个INPUT与它的相关值。我注意到有一个名为“_ EVENTVALIDATION”的东西似乎存在,只是为了阻止人们通过传递“ _EVENTTARGET”来轻松解决这个问题。
像Fiddler这样的工具在这里也很有用 - 当你点击NEXT时它会显示POST到服务器的内容 - 所有你需要做的就是在你的调用中复制它再次加载页面你有下一页 - 并在每个页面重复一遍,直到没有任何东西可以加载......
或者,您可以切换到使用WebView - 将页面加载到那意味着它确实有一个Javascript引擎,您可以自动执行“点击”(虽然我不知道如何执行此操作的具体细节,其他答案暗示它可能吗?)?