java下载网页源代码 java 网页下载

java中如何根据一个网址获得该网页的源代码?

package test;

创新互联专业为企业提供丰满网站建设、丰满做网站、丰满网站设计、丰满网站制作等企业网站建设、网页设计与制作、丰满企业网站模板建站服务,十余年丰满做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

public class HttpTest {

private String u;

private String encoding;

public static void main(String[] args) throws Exception {

HttpTest client = new HttpTest("", "UTF-8");

client.run();

}

public HttpTest(String u, String encoding) {

this.u = u;

this.encoding = encoding;

}

public void run() throws Exception {

URL url = new URL(u);// 根据链接(字符串格式),生成一个URL对象

HttpURLConnection urlConnection = (HttpURLConnection) url

.openConnection();// 打开URL

BufferedReader reader = new BufferedReader(new InputStreamReader(

urlConnection.getInputStream(), encoding));// 得到输入流,即获得了网页的内容

String line; // 读取输入流的数据,并显示

while ((line = reader.readLine()) != null) {

System.out.println(line);

}

}

}

根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。

具体步骤如下:/导致这种情况的原因主要是……

Java访问指定URL并获取网页源代码

1.编写useSourceViewer 类的基本框架,该类仅包括无返回值的main ()方法,该方法从参数中获取URL,通过输入缓冲和输出缓冲将该URL 原码输出。

2.编写useSourceViewer 类,代码如下:

import java.net.*;

import java.io.*;

public class useSourceViewer

{

public static void main (String[] args)

{

if (args.length 0)

{

try

{

//读入URL

URL u = new URL(args[0]);

InputStream in = u.openStream( );

// 为增加性能存储输入流

in = new BufferedInputStream(in);

// 将输入流连接到阅读器

Reader r = new InputStreamReader(in);

int c;

while ((c = r.read( )) != -1)

{

System.out.print((char) c);

}

Object o = u.getContent( );

System.out.println("I got a " + o.getClass().getName( ));

}

catch (MalformedURLException e)

{

System.err.println(args[0] + " is not a parseable URL");

}

catch (IOException e)

{

System.err.println(e);

}

} // end if

} // end main

} // end SourceViewer}

设计一个JAVA程序,下载由URL指定的网页的源代码,找出其中所有的超链接。

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class HttpViewer extends JFrame {

private JTextField urlInput;

private JTextArea viewArea;

public static void main(String[] args) {

new HttpViewer();

}

public HttpViewer() {

this.setTitle("Http Viewer");

this.setSize(800, 600);

this.setResizable(false);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

initPanel();

initAction();

this.setVisible(true);

}

// 这个方法用来设置窗口布局

private void initPanel() {

JPanel northPanel = new JPanel();

JLabel urlInputLabel = new JLabel("URL:");

urlInput = new JTextField(60);

northPanel.add(urlInputLabel);

northPanel.add(urlInput);

this.add(northPanel, BorderLayout.NORTH);

JPanel centerPanel = new JPanel();

viewArea = new JTextArea(27, 60);

centerPanel.add(new JScrollPane(viewArea));

this.add(centerPanel);

}

// 这个方法用来设置事件

private void initAction() {

urlInput.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

String text = urlInput.getText();

if (text == null || text.length() == 0) {

viewArea.setText("您没有输入URL");

return;

}

try {

URL url = new URL(text);

String context = getContent(url);

if (context != null) {

searchFromText(context);

}

} catch (MalformedURLException e1) {

viewArea.setText("您输入的URL不合法:" + text);

}

}

});

}

private String getContent(URL url) {

StringBuffer builder = new StringBuffer();

int responseCode = -1;

HttpURLConnection con = null;

try {

con = (HttpURLConnection) url.openConnection();

con.setRequestProperty("User-Agent",

"Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");// IE代理进行下载

con.setConnectTimeout(60000);

con.setReadTimeout(60000);

// 获得网页返回信息码

responseCode = con.getResponseCode();

if (responseCode == -1) {

viewArea.setText("连接失败:" + url.toString());

return null;

}

if (responseCode = 400) {

viewArea.setText("请求失败,错误码:" + responseCode);

return null;

}

InputStream is = con.getInputStream();

InputStreamReader isr = new InputStreamReader(is);

BufferedReader br = new BufferedReader(isr);

String str = null;

while ((str = br.readLine()) != null)

builder.append(str);

is.close();

} catch (IOException e) {

e.printStackTrace();

viewArea.setText("IOException: " + url.toString());

} finally {

con.disconnect();

}

return builder.toString();

}

private void searchFromText(String context) {

viewArea.setText("查找URL中:\n");

Pattern pattern = Pattern.compile("a( [^]+)*(.*?)/a");

Matcher matcher = pattern.matcher(context);

while (matcher.find()) {

for (String prop : matcher.group(1).split(" ")) {

int indexOf = prop.indexOf('=');

if (indexOf  0) {

if (prop.substring(0, indexOf).equals("href")) {

String url2 = prop.substring(indexOf + 2, prop.length() - 1);

viewArea.append(url2 + "\n");

}

}

}

}

}

}

求一个Java实现自动下载的源代码

您好,这样的:

/**

*

*/

package com.b510.base.bean.install;

import java.io.File;

import java.io.FileWriter;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

* @author hongten(hongtenzone@foxmail.com)

* @date 2013-2-24

*/

@SuppressWarnings("unchecked")

public class BeanUtils {

//公共部分

private static final String RT_1 = "\r\n";

private static final String RT_2 = RT_1+RT_1;

private static final String BLANK_1 =" ";

private static final String BLANK_4 =" ";

private static final String BLANK_8 =BLANK_4 + BLANK_4;

//注释部分

private static final String ANNOTATION_AUTHOR_PARAMTER = "@author ";

private static final String ANNOTATION_AUTHOR_NAME = "hongten(hongtenzone@foxmail.com)";

private static final String ANNOTATION_AUTHOR = ANNOTATION_AUTHOR_PARAMTER + ANNOTATION_AUTHOR_NAME;

private static final String ANNOTATION_DATE = "@date ";

private static final String ANNOTATION = "/**"+RT_1+BLANK_1+"*"+BLANK_1+ANNOTATION_AUTHOR +RT_1+BLANK_1+"*"+BLANK_1+ANNOTATION_DATE +getDate()+RT_1+BLANK_1+"*/"+RT_1;

//文件 地址

//private static final String BEAN_PATH = "com/b510/base/bean";

private static final String DAO_PATH = "com/b510/base/dao";

private static final String DAO_IMPL_PATH = "com/b510/base/dao/impl";

private static final String SERVICE_PATH = "com/b510/base/service";

private static final String SERVICE_IMPL_PATH = "com/b510/base/service/impl";

//包名

private static final String BEAN_URL = "com.b510.base.bean";

private static final String DAO_URL = "com.b510.base.dao";

private static final String DAO_IMPL_URL = "com.b510.base.dao.impl";

private static final String SERVICE_URL = "com.b510.base.service";

private static final String SERVICE_IMPL_URL = "com.b510.base.service.impl";

//基本类名称

private static final String BASE_DAO_NAME = DAO_URL + ".BaseDao";

private static final String ABSTRACT_BASE_DAO_IMPL_NAME = DAO_IMPL_URL + ".AbstractBaseDaoImpl";

private static final String BASE_SERVICE_NAME = SERVICE_URL + ".BaseService";

private static final String ABSTRACT_BASE_SERVICE_IMPL_NAME = SERVICE_IMPL_URL + ".AbstractBaseServiceImpl";

/**

* 创建bean的Daobr

*

* @param c

* @throws Exception

*/

public void createBeanDao(Class c) throws Exception {

String cName = c.getName();

String fileName = System.getProperty("user.dir") + "/src/" + DAO_PATH

+ "/" + getLastChar(cName) + "Dao.java";

File f = new File(fileName);

FileWriter fw = new FileWriter(f);

fw.write("package "+DAO_URL+";"+RT_2+ANNOTATION+"public interface " +

getLastChar(cName) + "Dao extends "+BASE_DAO_NAME+" " + cName + " {"+RT_2+"}");

fw.flush();

fw.close();

showInfo(fileName);

}

/**

* 创建bean的Dao的实现类

* @param c

* @throws Exception

*/

public void createBeanDaoImpl(Class c) throws Exception{

String cName = c.getName();

String fileName = System.getProperty("user.dir") + "/src/" + DAO_IMPL_PATH

+ "/" + getLastChar(cName) + "DaoImpl.java";

File f = new File(fileName);

FileWriter fw = new FileWriter(f);

fw.write("package "+DAO_IMPL_URL+";"+RT_2+ANNOTATION+"public class " +

getLastChar(cName) + "DaoImpl extends "+ABSTRACT_BASE_DAO_IMPL_NAME+"" +

cName + " implements "+DAO_URL+"."+getLastChar(cName)+"Dao{"+RT_2+"}");

fw.flush();

fw.close();

showInfo(fileName);

}

/**

* 创建bean的service

* @param c

* @throws Exception

*/

public void createBeanService(Class c) throws Exception{

String cName = c.getName();

String fileName = System.getProperty("user.dir") + "/src/" + SERVICE_PATH

+ "/" + getLastChar(cName) + "Service.java";

File f = new File(fileName);

FileWriter fw = new FileWriter(f);

fw.write("package "+SERVICE_URL+";"+RT_2+ANNOTATION+"public interface " +

getLastChar(cName) + "Service extends "+BASE_SERVICE_NAME+""+ cName +"{"+RT_2+"}");

fw.flush();

fw.close();

showInfo(fileName);

}

/**

* 创建bean的service的实现类

* @param c

* @throws Exception

*/

public void createBeanServiceImpl(Class c) throws Exception{

String cName = c.getName();

String fileName = System.getProperty("user.dir") + "/src/" + SERVICE_IMPL_PATH

+ "/" +getLastChar(cName)+"ServiceImpl.java";

File f = new File(fileName);

FileWriter fw = new FileWriter(f);

fw.write("package "+SERVICE_IMPL_URL+";"+RT_2+ANNOTATION+"public class "

+ getLastChar(cName) + "ServiceImpl extends "+ABSTRACT_BASE_SERVICE_IMPL_NAME+""+ cName

+ " implements "+SERVICE_URL+"."+getLastChar(cName)+"Service{"+RT_2+BLANK_4

+"private "+DAO_URL+"."+getLastChar(cName)+"Dao "+getLowercaseChar(getLastChar(cName))

+"Dao;"+RT_2+BLANK_4+"public void set"+getLastChar(cName)+"Dao("+DAO_URL+"."+getLastChar(cName)+"Dao "

+getLowercaseChar(getLastChar(cName))+"Dao){"+RT_1+BLANK_8+"this."+getLowercaseChar(getLastChar(cName))+"Dao = "

+getLowercaseChar(getLastChar(cName))+"Dao;"+RT_1+BLANK_4+"}"+RT_2+BLANK_4+"@Override"+RT_1+BLANK_4

+"public "+DAO_URL+"."+"BaseDao"+BEAN_URL+"."+getLastChar(cName)+" getBaseDao(){"+RT_1+BLANK_8

+"return "+getLowercaseChar(getLastChar(cName))+"Dao;"+RT_1+BLANK_4+"}"+RT_2+"}");

fw.flush();

fw.close();

showInfo(fileName);

}

/**

* 获取路径的最后面字符串br

* 如:br

* codestr = "com.b510.base.bean.User"/codebr

* code return "User";code

* @param str

* @return

*/

public String getLastChar(String str) {

if ((str != null) (str.length() 0)) {

int dot = str.lastIndexOf('.');

if ((dot -1) (dot (str.length() - 1))) {

return str.substring(dot + 1);

}

}

return str;

}

/**

* 把第一个字母变为小写br

* 如:br

* codestr = "UserDao";/codebr

* codereturn "userDao";/code

* @param str

* @return

*/

public String getLowercaseChar(String str){

return str.substring(0,1).toLowerCase()+str.substring(1);

}

/**

* 显示信息

* @param info

*/

public void showInfo(String info){

System.out.println("创建文件:"+ info+ "成功!");

}

/**

* 获取系统时间

* @return

*/

public static String getDate(){

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

return simpleDateFormat.format(new Date());

}

}


本文名称:java下载网页源代码 java 网页下载
网页URL:http://ybzwz.com/article/doshjei.html