问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求java获取网页源代码

发布网友 发布时间:2022-06-20 16:24

我来回答

2个回答

热心网友 时间:2024-11-20 12:19

其实你没理解http协议,你能获取html源码,就表明你http协议是成功的,是状态码是200,500就表示网站内部出错了,你也没办法
给你一段代码,这是我写的,应该可以获取正常的
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class WebClient {
public static String getWebContent(String urlString, final String charset,
int timeout) throws IOException {
if (urlString == null || urlString.length() == 0) {
return null;
}
urlString = (urlString.startsWith("http://") || urlString
.startsWith("https://")) ? urlString : ("http://" + urlString)
.intern();
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn
.setRequestProperty(
"User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
conn.setRequestProperty("Accept", "text/html");
conn.setConnectTimeout(timeout);
try {
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
return null;
}
} catch (IOException e) {
e.printStackTrace();
return null;
}
InputStream input = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input, charset));
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = reader.readLine()) != null) {
sb.append(line).append("\r\n");
}
if (reader != null) {
reader.close();
}
if (conn != null) {
conn.disconnect();
}
return sb.toString();

}

public static String getWebContent(String urlString) throws IOException {
return getWebContent(urlString, "iso-8859-1", 5000);
}

public static void main(String[] args) throws IOException {
String s = getWebContent("http://www.baidu.com");
s = new String(s.getBytes("iso-8859-1"), "gb2312");
System.out.println(s);
}
}

=====
获取conn.getResponseCode()是500的状态码不就行了吗

热心网友 时间:2024-11-20 12:14

源代码你应该获取不到吧。。。你获取的是服务器发过来经过处理过的代码

热心网友 时间:2024-11-20 12:14

其实你没理解http协议,你能获取html源码,就表明你http协议是成功的,是状态码是200,500就表示网站内部出错了,你也没办法
给你一段代码,这是我写的,应该可以获取正常的
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class WebClient {
public static String getWebContent(String urlString, final String charset,
int timeout) throws IOException {
if (urlString == null || urlString.length() == 0) {
return null;
}
urlString = (urlString.startsWith("http://") || urlString
.startsWith("https://")) ? urlString : ("http://" + urlString)
.intern();
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn
.setRequestProperty(
"User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
conn.setRequestProperty("Accept", "text/html");
conn.setConnectTimeout(timeout);
try {
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
return null;
}
} catch (IOException e) {
e.printStackTrace();
return null;
}
InputStream input = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input, charset));
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = reader.readLine()) != null) {
sb.append(line).append("\r\n");
}
if (reader != null) {
reader.close();
}
if (conn != null) {
conn.disconnect();
}
return sb.toString();

}

public static String getWebContent(String urlString) throws IOException {
return getWebContent(urlString, "iso-8859-1", 5000);
}

public static void main(String[] args) throws IOException {
String s = getWebContent("http://www.baidu.com");
s = new String(s.getBytes("iso-8859-1"), "gb2312");
System.out.println(s);
}
}

=====
获取conn.getResponseCode()是500的状态码不就行了吗

热心网友 时间:2024-11-20 12:11

源代码你应该获取不到吧。。。你获取的是服务器发过来经过处理过的代码
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见老婆光脚踩谷子 王者荣耀国服中,不论进入游戏还是没开始游戏,所有玩家发送的任何消息... 我的滴滴开空调活动怎么没了 为什么腾讯视频显示还是要流量看 没有联通中国结标志 电脑不能装win7买电脑时他们说只能装win10系统不能装win7 英雄联盟手游 手机lol游戏盒子现在叫什么? 英雄联盟手机盒子看不了比赛记录 手游英雄联盟视频在哪里看手机英雄联盟盒子在哪看我游戏中录的视频 英雄联盟盒子看视频只有声音没有画面,不是网速的问题,也不是电脑卡,是... 为什么英雄联盟盒子没发看视频 怎样使用java读取网页源码 How To Get URL Content In Java 含有中药的诗词 让人食指大动的装修之餐饮墙面颜色搭配 餐饮业墙面颜色用紫色可以吗? 违停有照片吗 违停拍照标准 iPhone5 原装置换机 不在保了 能买吗 苹果5置换机能不能用 苹果5置换机的质量怎么样? 太愁人了,怎样才能自学文科高中数学? 找工作太愁人了 太愁人了沧州怎么一直不下雨我都快上吊了? 太愁人了,我姐姐家孩子从小娇生惯养,现在不好好学习,怎么解决这个问题... 老实的男生能找到对象吗?太愁人了,该怎么办啊 太愁人了,怎么越来越严重了 太愁人了!我家儿女打小备受宠爱,现在一点点不明白尊重,我该怎么做... 我下了夜神Nox安卓模拟器,为什么想卸载变成这个样子 国通储油卡怎么使用 朋友帮忙代取过件,他就可以一直看到我买的东西,该怎么取消呢?_百度... 工行风险能力评测有哪些类型的投资者?还有答题答案。 王子佳这个名字有何寓意 王子佳喜欢谁 海林市高级中学的简介 西安大牛犇餐饮管理有限公司怎么样? 姓王,男孩,叫什么硕好听 在徐州做个洋河蓝色经典门头或今世缘门头有什么要求?找谁联系?_百度知 ... 洋河蓝色经典门头字可以随便换么,去年洋河公司给我们做了个门头招牌 请紫微大师、达人帮我分析下我的紫微星座,命盘。 我的被人恶意投诉不能用了,怎样才能恢复? 紫微星座如何看 我之前的被别人举报被限制登录怎么解封? G3260和G2030性能怎么样?哪个更好些 被别人举报了怎么解封 Win7的任务计划执行批处理文件怎么显示窗口? win7系统下C:\windows\system32\tasks下的几个文件是什么? win7系统怎么设定计划任务? 联通无限流量卡为什么每天只让用六个小时,,请你回答? 历史上让你感动的话是什么? 释迦牟尼传奇讲的是什么? 被别人举报封了怎么办?