导航:首页 > 源码编译 > httpclient获取网页源码

httpclient获取网页源码

发布时间:2023-09-13 21:50:39

‘壹’ 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;
}

阅读全文

与httpclient获取网页源码相关的资料

热点内容
ftplinux命令get 浏览:956
程序员那么可爱21集剧情 浏览:303
免费阅读程序员那么可爱 浏览:980
外网哄睡助眠解压 浏览:818
如何反编译amxx 浏览:735
rsa加密太耗时 浏览:237
数控车ug编程步骤 浏览:6
如何精准推广app 浏览:175
高中数学教材pdf人教版 浏览:152
什么app能看明星演唱会 浏览:493
ug刀柄放到哪个文件夹 浏览:322
eclipse编写php 浏览:673
php抓取网页内容的代码 浏览:868
什么是萌鸭app 浏览:861
变量的数字如何变化python 浏览:794
整数压缩 浏览:993
最优停止策略问题算法 浏览:716
pdf图片背景 浏览:766
app的图标有什么风格 浏览:28
python代码运行编译器 浏览:936