使用Java applet获取页面的html源代码

时间:2013-02-03 21:36:49

标签: java

我知道像Python这样的脚本语言这是可能的,但我知道Java applet无法访问除自己以外的其他服务器。

我不知道/我认为我可以让这个applet签名。有没有办法使用PHP来完成我想要完成的任务?

我也知道此代码将转到google.com

import java.applet.*;
import java.awt.*;
import java.net.*;
import java.awt.event.*;

public class tesURL extends Applet implements ActionListener{

  public void init(){
  String link_Text = "google";
  Button b = new Button(link_Text);
  b.addActionListener(this);
  add(b);
  }

  public void actionPerformed(ActionEvent ae){
  //get the button label
  Button source = (Button)ae.getSource();

  String link = "http://www."+source.getLabel()+".com";
  try
  {
  AppletContext a = getAppletContext();
  URL u = new URL(link);
//  a.showDocument(u,"_blank");
//  _blank to open page in new window  
  a.showDocument(u,"_self");
  }
  catch (MalformedURLException e){
  System.out.println(e.getMessage());
  }
  }
}

假设source.getLabel()是“google”

但是我如何获得该页面的源html?

源html是动态的,每隔几秒或几毫秒更新一次。但是,html也会更新,所以我仍然可以直接从html中读取动态内容。我已经在vb.net中做过这个,但现在我需要将它移植到Java,但我无法弄清楚如何访问页面的html源代码;这就是我要问的原因。

1 个答案:

答案 0 :(得分:1)

AppletContext.showDocument在浏览器中打开一个页面,就像HTML中的超链接或JavaScript中的类似调用一样。在同源政策下,如果来自其他网站,即使该网页位于iframe中,您也无权访问该网页。

如果您要直接阅读crossdomain.xml的内容,某些网站可能会有java.net.URL个政策文件,允许访问。但是,www.google.com似乎使用的是受限制的表单,我认为Java PlugIn目前不支持该表单。

有人可能会建议您的applet签名,这会关闭Java的“沙盒”安全功能。然后,您需要说服您的用户信任您发布安全签名代码的能力。