java下载网页源代码,java获取网页源代码

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

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

类乌齐ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

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中如何根据一个网址获得该网页的源代码,急求

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

public class HttpTest {

String urlString;

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

HttpTest client = new HttpTest(网址);

client.run();

}

public HttpTest(String urlString) {

this.urlString = urlString;

}

public void run() throws Exception {

//生成一个URL对象

URL url = new URL(urlString);

//打开URL

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

//得到输入流,即获得了网页的内容

BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection

.getInputStream()));

String line;

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

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

System.out.println(line);

}

}

}

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实现自动下载的源代码

您好,这样的:

/**

*

*/

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 获取网页源代码---有效防止乱码

前段时间做过这类功能,如何有效防止乱码,我们必须先知道一个网页的编码方式,是utf-8,还是gbk。

1.HttpURLConnection.getContentType();直接读取,效率高,但有很多时候读不到。只是text/html就完事了,没有charset.

2.使用第三方的HttpClient,执行效率较高。但读取网页头header也只适用部分站,很多网站服务段不设置,结果就读成了null.

3.最没有效率的判断方法就是使用inputStreamReader先把正页的html源码读取出来,之后截取charset后面编码。得到编码之后重新再读取一遍。但是效率很低。

做个总结:

/**

* 取得页面编码

*

* @param url

* @return

*/

public String getCharset(String url) throws Exception {

// log.info("进入读页面的关键词:" + keyword);

String charset = "";

int c;

HttpURLConnection httpurlcon = null;

// log.info("url:"+url);

// log.info("charset:"+charset);

log.info("url:" + url);

URL httpurl = new URL(url);

// System.out.println(url+str);

httpurlcon = (HttpURLConnection) httpurl.openConnection();

// google需要身份

httpurlcon.setRequestProperty("User-agent", "Mozilla/4.0");

charset = httpurlcon.getContentType();

log.info("charset1:" + charset);

// 如果可以找到

if (charset.indexOf("charset=") != -1)

charset = charset.substring(charset.indexOf("charset=")

+ "charset=".length(), charset.length());

// 否则读取response.Header头

else {

charset = this.getContentCharset();

log.info("charset2:" + charset);

}

// 如果charset还是为空,那么直接读网页来截取

if (charset == null) {

charset = this.readPageCharset(url);

log.info("charset31:" + charset);

}

return charset;

}

如何用java中HTMLPraser提取网页源代码中的某些链接

使用正则表达式去匹配就行了。

第一步:下载你需要分析的网页的源码

第二步:在程序中使用正则表达式去匹配源码,保存匹配成功的链接地址就行。

可以在网上搜一下匹配网址的正则表达式

网站栏目:java下载网页源代码,java获取网页源代码
链接URL:https://www.cdcxhl.com/article26/hoipcg.html

成都网站建设公司_创新互联,为您提供网站改版品牌网站建设网站收录搜索引擎优化域名注册标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营