java下載網頁
❶ 設計一個java程序,下載由URL指定的網頁的源代碼,找出其中所有的超鏈接。
importjava.awt.BorderLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.net.HttpURLConnection;
importjava.net.MalformedURLException;
importjava.net.URL;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
{
privateJTextFielrlInput;
privateJTextAreaviewArea;
publicstaticvoidmain(String[]args){
newHttpViewer();
}
publicHttpViewer(){
this.setTitle("HttpViewer");
this.setSize(800,600);
this.setResizable(false);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
initPanel();
initAction();
this.setVisible(true);
}
//這個方法用來設置窗口布局
privatevoidinitPanel(){
JPanelnorthPanel=newJPanel();
JLabelurlInputLabel=newJLabel("URL:");
urlInput=newJTextField(60);
northPanel.add(urlInputLabel);
northPanel.add(urlInput);
this.add(northPanel,BorderLayout.NORTH);
JPanelcenterPanel=newJPanel();
viewArea=newJTextArea(27,60);
centerPanel.add(newJScrollPane(viewArea));
this.add(centerPanel);
}
//這個方法用來設置事件
privatevoidinitAction(){
urlInput.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringtext=urlInput.getText();
if(text==null||text.length()==0){
viewArea.setText("您沒有輸入URL");
return;
}
try{
URLurl=newURL(text);
Stringcontext=getContent(url);
if(context!=null){
searchFromText(context);
}
}catch(MalformedURLExceptione1){
viewArea.setText("您輸入的URL不合法:"+text);
}
}
});
}
privateStringgetContent(URLurl){
StringBufferbuilder=newStringBuffer();
intresponseCode=-1;
HttpURLConnectioncon=null;
try{
con=(HttpURLConnection)url.openConnection();
con.setRequestProperty("User-Agent",
"Mozilla/4.0(compatible;MSIE5.0;WindowsNT;DigExt)");//IE代理進行下載
con.setConnectTimeout(60000);
con.setReadTimeout(60000);
//獲得網頁返回信息碼
responseCode=con.getResponseCode();
if(responseCode==-1){
viewArea.setText("連接失敗:"+url.toString());
returnnull;
}
if(responseCode>=400){
viewArea.setText("請求失敗,錯誤碼:"+responseCode);
returnnull;
}
InputStreamis=con.getInputStream();
InputStreamReaderisr=newInputStreamReader(is);
BufferedReaderbr=newBufferedReader(isr);
Stringstr=null;
while((str=br.readLine())!=null)
builder.append(str);
is.close();
}catch(IOExceptione){
e.printStackTrace();
viewArea.setText("IOException:"+url.toString());
}finally{
con.disconnect();
}
returnbuilder.toString();
}
privatevoidsearchFromText(Stringcontext){
viewArea.setText("查找URL中: ");
Patternpattern=Pattern.compile("<a([^>]+)*>(.*?)</a>");
Matchermatcher=pattern.matcher(context);
while(matcher.find()){
for(Stringprop:matcher.group(1).split("")){
intindexOf=prop.indexOf('=');
if(indexOf>0){
if(prop.substring(0,indexOf).equals("href")){
Stringurl2=prop.substring(indexOf+2,prop.length()-1);
viewArea.append(url2+" ");
}
}
}
}
}
}
❷ JAVA編程 如何將下載的網頁另存為到本地電腦上
Stream resStream = wc.OpenRead(PageUrl);
StreamReader sr = new StreamReader(resStream,System.Text.Encoding.Default);
ContentHtml.Text = sr.ReadToEnd();
resStream.Close();
❸ 去哪裡下載java系統的前端頁面
Java文件下載,提供前端頁面下載、HttpClient介面下載 學習Java的文件上傳/下載需要先明白一下幾點: 1、下載的資源,有兩種: 1)、本地文件:即項目運行時可訪問的文件目錄
❹ java在哪下載比較好
可以到sun的官方網站http://www.java.com/zh_CN/下載jre,只用於運行Java程序
如果你是開發人員,可以到http://www.oracle.com/technetwork/java/javase/downloads/index.html下載最新版的jdk,網頁是英文的,可以用Google翻譯或者bing翻譯
❺ 在java.com無法進入「所有java下載」頁面怎麼辦
可能是你點錯了。換個瀏覽器可以試試
❻ java如何實現超鏈接下載
java實現超鏈接下載方法如下:
response.setHeader("Content-disposition","attachment;filename="下載的文件名字);
備註:讓response調用setheader方法添加下載的頭給客戶的瀏覽器,瀏覽器收到該頭後就會打開相應的下載對話框。
❼ java代碼實現網頁下載
看你的意思,我覺得你可以去網上查查java網路爬蟲的實現,就是自動抓取網頁內容,並保存
http://blog.csdn.net/binyao02123202/article/details/5725396這里有個鏈接你可以參考下
❽ java中如何實現網頁以Excel的形式下載的功能
兩種方式:1)將你的網頁報表用poi或jxl,轉化為excel格式,然後通過servlet的流輸出 2)使用現有的報表工具實現,我用finereport,其他的你也可以去Google搜下。
❾ 用java讀取網頁內容從並下載此網頁
URL url=new URL("http://www..com");//取得資源對象
URLConnection uc=url.openConnection();//生成連接對象
uc.setDoOutput(true);
uc.connect(); //發出連接
String temp;
final StringBuffer sb = new StringBuffer();
final BufferedReader in = new BufferedReader(new InputStreamReader(
url.openStream(),"gb2312"));
while ((temp = in.readLine()) != null) {
sb.append("\n");
sb.append(temp);
}
in.close();
System.out.println(sb);
❿ 使用java的io流下載了一個網頁,但是打開時出現亂碼,求助!
你用java的IO讀寫的時候,記得設置參數裡面的編碼為下載網頁的編碼,要一致