导航:首页 > 源码编译 > 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获取网页源码相关的资料

热点内容
不适合程序员的表现 浏览:498
扣扣服务器问题怎么解决 浏览:126
手机怎么连接加密WF 浏览:329
电脑怎么在邮箱发送文件夹 浏览:803
王者荣耀服务器忙如何强制进入 浏览:26
云服务器网站怎么购买 浏览:477
linux系统记录 浏览:127
linuxusb驱动下载 浏览:34
梁特殊箍筋加密区公式 浏览:141
web应用安全pdf 浏览:47
linuxintel网卡驱动下载 浏览:217
资源解压后怎么删除 浏览:868
编程之美15种算法 浏览:147
java的图形用户界面设计 浏览:769
算数游戏源码 浏览:999
压缩机工作声音判断 浏览:985
事业单位程序员 浏览:507
易语言取相似颜色源码 浏览:773
pyodbclinux 浏览:585
vivo为什么把服务器沉到深海 浏览:460