簡體   English   中英

使用Java小程序獲取頁面的html源

[英]Get page's html source using a Java applet

我知道在像Python這樣的腳本語言中這是可能的,但是我知道Java小程序無法訪問除其自身以外的其他服務器。

我不知道/認為我可以將此小程序簽名。 有沒有一種方法可以使用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源。 這就是為什么我問。

AppletContext.showDocument在瀏覽器中打開一個頁面,就像HTML中的超鏈接或JavaScript中的類似調用一樣。 根據“ 相同來源策略” ,即使該頁面位於其他網站中,也無法訪問該頁面,即使該頁面位於iframe中也是如此。

如果您直接讀取java.net.URL的內容,則某些站點可能具有crossdomain.xml策略文件,該文件允許訪問。 但是,www.google.com似乎使用的是受限格式,我認為Java插件當前不支持該格式。

可能有人會建議簽署您的applet,這將關閉Java的“沙盒”安全功能。 然后,您需要說服用戶信任您發布安全簽名代碼的能力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM