<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    lexy

    支持開源,尊重他人的勞動!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      17 隨筆 :: 0 文章 :: 9 評論 :: 0 Trackbacks

    httpclient+nekohtml?解析HTML

    import org.cyberneko.html.parsers.DOMParser;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    import org.w3c.dom.Document;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.methods.GetMethod;

    import java.io.InputStream;
    import java.io.IOException;

    public class Html2XML {
    ??? private int connectionTimeout = 5000;
    ??? private int soTimeout = 12000;
    ??? private String proxyHost = null;
    ??? private int proxyPort;

    ??? public Document getDocument(String url) {
    ??????? HttpClient client = new HttpClient();
    ??????? if (proxyHost != null) {
    ??????????? client.getHostConfiguration().setProxy(proxyHost, proxyPort);
    ??????? }
    ??????? client.getHttpConnectionManager().getParams().setConnectionTimeout(connectionTimeout);
    ??????? client.getHttpConnectionManager().getParams().setSoTimeout(soTimeout);
    ??????? GetMethod method = new GetMethod(url);
    ??????? method.addRequestHeader("Content-Type", "text/html; charset=utf-8");
    ??????? try {
    ??????????? int statusCode = client.executeMethod(method);
    ??????????? if (statusCode != HttpStatus.SC_OK) {
    ??????????????? throw new HttpException("HttpStatusCode : " + statusCode);
    ??????????? }
    ??????????? InputStream is = method.getResponseBodyAsStream();
    ??????????? DOMParser parser = new DOMParser();
    ??????????? parser.setProperty("??????????? parser.parse(new InputSource(is));
    ??????????? return (parser.getDocument());
    ??????? } catch (HttpException he) {
    ??????????? he.printStackTrace();
    ??????? } catch (IOException ie) {
    ??????????? ie.printStackTrace();
    ??????? } catch (SAXException se) {
    ??????????? se.printStackTrace();
    ??????? }
    ??????? return null;
    ??? }
    }


    評論

    # re: httpclient+nekohtml 解析HTML 2008-04-01 09:25 隔葉黃鶯
    如果 html 頁面完全不規范就不好辦了,如
    <h1><div>kkkkk</h1></div>  回復  更多評論
      

    # re: httpclient+nekohtml 解析HTML 2008-04-01 17:13 lexy
    @隔葉黃鶯

    這個我也沒具體測試過,呵呵。
    不過 nekohtml 的介紹是這樣說的:
    這個解析器能投掃描HTML文件并“修正”許多作者(人或機器)在編寫HTML文檔過程中常犯的錯誤。NekoHTML能增補缺失的父元素、自動用結束標簽關閉相應的元素,以及不匹配的內嵌元素標簽。

    我在用的過程中暫時還沒發現什么大問題,呵呵。
      回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 337p日本欧洲亚洲大胆色噜噜| 亚洲熟妇丰满xxxxx| 在线观看视频免费完整版| 亚洲AV一区二区三区四区| 久久影院亚洲一区| 成人免费在线看片| 久久久久久毛片免费看| 亚洲免费在线视频播放| 久久久久亚洲av成人无码电影| 亚洲视频免费在线观看| 亚洲hairy多毛pics大全| 国产国拍亚洲精品mv在线观看| 99久久免费精品国产72精品九九| 国产免费黄色无码视频| 国产精品亚洲精品青青青| 在线A亚洲老鸭窝天堂| 国产精品视频免费一区二区| 91免费国产视频| 亚洲AV永久无码精品网站在线观看 | 在线观看免费污视频| 久久国产美女免费观看精品 | 97久久国产亚洲精品超碰热| 在线亚洲精品自拍| 免费观看的av毛片的网站| 99在线观看免费视频| 免费人成视频在线观看免费| 亚洲国产福利精品一区二区| 亚洲精品一品区二品区三品区| 欧洲精品免费一区二区三区| 久久99青青精品免费观看| 九九九精品视频免费| 一区二区亚洲精品精华液| 亚洲精品无码不卡| 国产成人精品亚洲精品| 日韩免费高清视频| 无人在线观看免费高清视频| 久久国产精品免费观看| 中文字幕在线观看免费| 日本视频免费观看| 亚洲av成人中文无码专区| 亚洲AV色吊丝无码|