[英]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.