分类: 学习预览模式: 普通 | 列表
10-01
18

把多个空格变成一个

        String s = "http://tieba.baidu.com/f?kz=696057409       素颜★流转";

方法一:    
        s = s.replaceAll(" ", " ");
        System.out.println(s);
        String s1="";
        if(s.trim().indexOf(" ")!=-1){
           String ss[] = s.split(" ");
           for(int i=0;i<ss.length;i++){

查看更多...

分类:学习 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 244
10-01
16

使用HttpClient获取网页字符编码

使用HttpClient获取网页字符编码
使用HttpClipent取得网页内容,但不同的网页编码又不一定一样
这样在取得网页响应流的时候,就要分别处理.
一般来说,常见的网页字符集有UTF-8,iso-8859-1,GBK,GB2312几种
当然,你要是一外文高手,全球那么多语言,全搞一遍,就不止这个数目了.
这里取得网页字符集编码只考虑最常见的情况,使用的HttpClient为4.0版本
基本上是目前最新的.下面来看代码.

/**

查看更多...

分类:学习 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 760
10-01
16

使用正则表达式来判断网页

public String HtmlToTextGb2312(String inputString)
    {
              String htmlStr = inputString; //含html标签的字符串
              String textStr ="";
              Pattern p_script;
              Matcher m_script;
              Pattern p_style;
              Matcher m_style;
              Pattern p_html;

查看更多...

分类:学习 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 172
10-01
16

从http协议看无法获取网页charset的原因

connection.getContentType();

  这个需要服务器设置了 ContentType才可以,这个数据在文件头里面,而不是在文件的主体(也就是你看到的html)里面。

  所以检测页面类型需要分3步,如果这一步不行,则用下一个

  1 看header里面的ContentType,也就是你用的那个方法

  2 看 html 里面的 ContentType ,也就是解析html页面

查看更多...

分类:学习 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 161
10-01
16

HTTP的请求头

HTTP是一种请求/回应协议,用户通过客户端(比如IE)发送给网站一个请求,那么网站会返回一个相应,在发送请求信息之前,会发送一些头文件,也就是HTTP的请求头,这里我们用一个叫HTTP Analyzer的软件来截获一下我们访问网站时的HTTP头

view plaincopy to clipboardprint?
<headers>  
      <requestheaders>  
        <header>GET / HTTP/1.1</header>  
        <header>Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*</header>  
        <header>Accept-Language: zh-cn</header>  
        <header>User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)</header>  

查看更多...

分类:学习 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 339
10-01
16

htmlparser 编码问题

     有时候,在抓取网站的时候,网站的编码方式可能不统一,这样的情况,可能有些网页编码不成功,而htmlparser报了错,不能正常的读取。抛出来的异常为:org.htmlparser.util.EncodingChangeException: character mismatch (new: 中 [0x4e2d] != old:  [0xd6?]) for encoding change from ISO-8859-1 to GB2312 at character offset 23

为了解决不管它是用何种编码方式,都能够正常读取数据。我在htmlparser的Page类中加了一个字段,之所以要在Page类中加,那是因为它历遍所有的标签过程中,把meta标签属性content捕获到了,并已经传值到setEncoding(String charset)办法中。

          代码如下:



Java代码

查看更多...

分类:学习 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 463